相关疑难解决方法(0)

在打字稿中,什么是!解除引用会员时(感叹号/爆炸)运营商?

在查看tslint规则的源代码时,我遇到了以下语句:

if (node.parent!.kind === ts.SyntaxKind.ObjectLiteralExpression) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

注意!操作员之后node.parent.有趣!

我首先尝试使用我当前安装的TS版本(1.5.3)在本地编译该文件.结果错误指向爆炸的确切位置:

$ tsc --noImplicitAny memberAccessRule.ts 
noPublicModifierRule.ts(57,24): error TS1005: ')' expected.
Run Code Online (Sandbox Code Playgroud)

接下来我升级到最新的TS(2.1.6),编译它没有问题.所以它似乎是TS 2.x的特征.但是,转化完全忽略了爆炸,导致以下JS:

if (node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

我的Google fu到目前为止都没有让我失望.

什么是TS的感叹号操作符,它是如何工作的?

typescript tslint

338
推荐指数
4
解决办法
9万
查看次数

parseInt vs unary plus - 何时使用哪个

这一行有什么区别:

var a = parseInt("1", 10); // a === 1
Run Code Online (Sandbox Code Playgroud)

这条线

var a = +"1"; // a === 1
Run Code Online (Sandbox Code Playgroud)

这个jsperf测试显示,当前的chrome版本中的一元运算符要快得多,假设它是针对node.js的!

如果我尝试转换不是数字的字符串都返回NaN:

var b = parseInt("test" 10); // b === NaN
var b = +"test"; // b === NaN
Run Code Online (Sandbox Code Playgroud)

那么我什么时候应该优先使用parseInt一元加(尤其是在node.js中)???

编辑:双波浪运算符的区别是什么~~

javascript node.js

135
推荐指数
3
解决办法
3万
查看次数

标签 统计

javascript ×1

node.js ×1

tslint ×1

typescript ×1