dart:js_util 库
在运行时不知道要调用的名称的情况下,用于操作带有 package:js
注解的 JavaScript 互操作对象的实用方法。
注意
通常应使用 dart:js_interop
而不是此库。欲了解更多信息,请参阅 JS 互操作文档。
仅在无法使用 @JS()
注解实现相同效果时,才应使用这些方法。
属性
- globalThis → Object
-
无设置器
- objectPrototype → Object?
- 返回
Object
原型。相当于Object.prototype
。无设置器
函数
-
add<
T> (Object? first, Object? second) → T - 执行两个值上的 JavaScript 加法 (
+
)。 -
allowInterop<
F extends Function> (F f) → F - 返回一个包装函数
f
,可以从 JavaScript 使用package:js
JavaScript 互操作调用。 -
allowInteropCaptureThis(
Function f) → Function - 返回一个包装函数
f
,可以从 JavaScript 使用package:js
JavaScript 互操作调用,并将 JavaScriptthis
作为第一个参数传递。 -
and<
T> (Object? first, Object? second) → T - 执行两个表达式的 JavaScript 逻辑与比较 (
&&
)。 -
callConstructor<
T> (Object constr, List< Object?> ? arguments) → T -
callMethod<
T> (Object o, Object method, List< Object?> args) → T -
createDartExport<
T extends Object> (T dartObject) → Object - 对于标记为可导出的Dart对象,创建一个指向该Dart类的JS对象字面量。查看
@JSExport
注解以确定Dart类的“可导出”内容。对象字面量将是一个导出名称(可以是书写的实例成员名称或它们的重命名)到相应的Dart实例成员的映射。 -
createStaticInteropMock<
T extends Object, U extends Object> (U dartMock, [Object? proto = null]) → T - 给定一个
@staticInterop
类型T和一个实现T外部扩展成员的Dart类U的实例dartMock
,创建一个转发模拟。 -
dartify(
Object? o) → Object? - 实际上是jsify的逆操作,dartify接受一个JavaScript对象,并将其转换为基于Dart的对象。仅支持JS原始类型、数组或类似JS的‘map’对象。
-
delete<
T> (Object o, Object property) → bool - 在给定对象的给定属性上执行JavaScript删除操作(
delete
)。 -
divide<
T> (Object? first, Object? second) → T - 在两个值上执行JavaScript除法(
/
)。 -
equal<
T> (Object? first, Object? second) → bool - 在两个值上执行JavaScript相等比较(
==
)。 -
exponentiate<
T> (Object? first, Object? second) → T - 对两个值执行 JavaScript 幂运算 (
**
)。 -
getProperty<
T> (Object o, Object name) → T -
greaterThan<
T> (Object? first, Object? second) → bool - 对两个值执行 JavaScript 大于比较 (
>
)。 -
greaterThanOrEqual<
T> (Object? first, Object? second) → bool - 对两个值执行 JavaScript 大于等于比较 (
>=
)。 -
hasProperty(
Object o, Object name) → bool -
instanceof(
Object? o, Object type) → bool - 检查
o
是否是type
的实例。 -
instanceOfString(
Object? element, String objectType) → bool - 类似于 instanceof,但仅接受一个 String 作为对象名称,而不是构造函数对象。
-
isJavaScriptArray(
dynamic value) → bool - 如果给定的对象是 JavaScript 数组,则返回
true
。 -
isJavaScriptSimpleObject(
dynamic value) → bool - 如果给定的对象是简单的 JavaScript 对象,则返回
true
。 -
isTruthy<
T> (Object? o) → bool - 确定给定的对象是 true 或 false。
-
jsify(
Object? object) → dynamic - 递归地将类似于 JSON 的集合转换为 JavaScript 兼容的表示。
-
lessThan<
T> (Object? first, Object? second) → bool - 对两个值执行 JavaScript 小于比较(
<
)。 -
lessThanOrEqual<
T> (Object? first, Object? second) → bool - 对两个值执行 JavaScript 小于等于比较(
<=
)。 -
modulo<
T> (Object? first, Object? second) → T - 对两个值执行 JavaScript 取模(
%
)。 -
multiply<
T> (Object? first, Object? second) → T - 对两个值执行 JavaScript 乘法(
*
)。 -
newObject<
T> () → T -
not<
T> (Object? o) → T - 对给定的对象执行 JavaScript 逻辑非(
!
)。 -
notEqual<
T> (Object? first, Object? second ) → bool - 对两个值执行 JavaScript 不相等比较(
!=
)。 -
objectGetPrototypeOf(
Object? object) → Object? - 返回指定对象的原型。相当于
Object.getPrototypeOf
。 -
objectKeys(
Object? object) → List< Object?> - 返回指定对象的所有键。相当于
Object.keys(object)
。 -
or<
T> (Object? first, Object? second ) → T - 执行两个表达式的 JavaScript 逻辑或比较(
||
)。 -
promiseToFuture<
T> (Object jsPromise) → Future< T> - 将 JavaScript Promise 转换为 Dart Future。
-
setProperty<
T> (Object o, Object name, T? value ) → T -
strictEqual<
T> (Object? first, Object? second ) → bool - 对两个值执行 JavaScript 严格相等比较(
===
)。 -
strictNotEqual<
T> (Object? first, Object? second) → bool - 对两个值执行JavaScript严格不等于比较(
!==
)。 -
subtract<
T> (Object? first, Object? second) → T - 对两个值执行JavaScript减法(
-
)。 -
typeofEquals<
T> (Object? o, String type) → bool - 对给定对象执行JavaScript
typeof
运算符并确定结果是否等于给定的类型。暴露整个typeof
等于表达式以最大化浏览器优化。 -
unsignedRightShift(
Object? leftOperand, Object? rightOperand) → num - 使用给定的右操作数指定的数量对给定的左操作数执行JavaScript无符号右移操作符(
>>>
)。
异常 / 错误
- NullRejectionException
- 当承诺以
null
或undefined
值被拒绝时引发的异常。