- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的根文件夹中,我有如下所示的 tsconfig.json 文件:
{
"compilerOptions": {
/* Basic Options */
"target": "es2015", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"lib": [
"es2017",
"dom"
], /* Specify library files to be included in the compilation. */
"declaration": false, /* Generates corresponding '.d.ts' file. */
"outDir": "./dist", /* Redirect output structure to the directory. */
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
"strictNullChecks": true, /* Enable strict null checks. */
"strictFunctionTypes": true, /* Enable strict checking of function types. */
/* Additional Checks */
"noUnusedLocals": true, /* Report errors on unused locals. */
"moduleResolution": "node",
"typeRoots": [
"node_modules/@types"
], /* List of folders to include type definitions from. */
"experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
"emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */
}
}
在我的 src 文件中,我有这样的文件:
export class CompareDatesLogic implements ICRUD {
public create() {
let test;
test = 'aaaa';
return {
name: test,
};
}
}
但是 Visal Code 没有检测到 noImplicitAny
,有人知道这可能是什么问题吗?
最佳答案
查看 https://github.com/Microsoft/TypeScript/issues/18679/和 https://github.com/Microsoft/TypeScript/pull/11263更多详情,
简而言之,TS compile 的新特性允许控制流分析来确定最初未分配的值的类型。
在你的代码中,
让测试;//没有定义类型
test = 'aaa'//分配的字符串
在这两次执行之间,test
的类型没有任何变化,tsc 通过分析代码自动推断出 test:string
。
我正在借用问题中的详细示例:
function f(cond: boolean) {
let x;
if (cond) {
x = "hello";
x; // string
}
else {
x = 123;
x; // number
}
return x; // string | number
}
function g(cond: boolean) {
let y = null;
if (cond) {
y = "hello";
}
return y; // string | null
}
描述了它是如何工作的。
关于typescript - noImplicitAny 不工作 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49072134/
使用 typescript playground在打开 noImplicitAny 的情况下,我输入以下代码: async function a () { const b = JSON.p
在下面的代码片段中,尽管有一个隐式类型为 any 的参数,但 typescript 不会发出任何错误。 . declare function constrainedHOF any>(callback:
TypeScript 文档将 noImplicitAny 编译器标志记录为 Raise error on expressions and declarations with an implied an
即使我启用了 --noImplicitAny 标志,此代码也不会在 TypeScript playground 或 tsc 中向我显示任何错误。为什么不?如果我将 methodName 悬停在 pla
在我的根文件夹中,我有如下所示的 tsconfig.json 文件: { "compilerOptions": { /* Basic Options */ "target": "e
我有很多代码要移植到缺少类型的 Typescript。现在,我希望我的 IDE (WebStorm) 只突出显示需要输入的地方,我会慢慢修复它们。 如 tsconfig.json有一个 warning
我已将“noImplicitAny”和“noImplicitReturns”添加到我的 Typescript tsconfig.json 文件中: { "compilerOptions": {
我有密码 let z; z = 50; z = 'z'; 我的 tsconfig.json 是: { "compilerOptions": { "target": "es5", "
我想在编译器中启用 noImplicitAny 标志。我的问题是我使用 lodash/fp 并且到目前为止还没有打字。 因此编译器提示缺少 lodash/fp 的定义文件。 有没有办法只允许外部js文
我想在项目中使用带 noImplicitAny 和 strictNullChecks 的 typescript 声明一个带有错误优先回调的函数。 有没有一种方法可以声明一个interface 或typ
我通常设置我的 tsconfig.json 并将 strict 设置为 true。这意味着 noImplicitAny 也设置为 true。但是,当设置了 strict 时,typescript 似乎
简单的问题 - 每次我导入一个没有 .d.ts 文件的新 npm 库时,我都会创建一个 stub .d.ts 文件,其中包含很多这样的行,只是为了编译: function SomeFunctionIN
我正在使用 Typescript 2 和 Webpack 2 构建 Angular 2 应用程序。作为加载程序,我使用 awesome-typescript-loader。我在 tsconfig.js
Typescript 在 javascript es6 之上添加了许多功能,我对静态类型和private/public/protected 关键字很感兴趣。 到目前为止,Typescript 编译器施
我总是使用标志 --noImplicitAny 编译 TypeScript。这是有道理的,因为我希望我的类型检查尽可能严格。 我的问题是使用以下代码时出现错误: Index signature of
我总是使用标志 --noImplicitAny 编译 TypeScript。这是有道理的,因为我希望我的类型检查尽可能严格。 我的问题是使用以下代码时出现错误: Index signature of
我是一名优秀的程序员,十分优秀!