Я внес ошибку, написав такой класс:
class SomeClass {
private readonly item: string;
constructor(item: string) {
// bug, item is never assigned
}
public getInfo(): string {
return this.item; // always returns `undefined`
}
}
элемент никогда не назначается, и поэтому каждый вызов getInfo()
возвращает undefined
. Этот код успешно переносится, хотя.
Стиль кода моего текущего проекта не позволяет использовать конструктор сокращений с помощью правила no-parameter-properties
tslint, и, следовательно, я не могу сделать:
class SomeClass {
public constructor(private readonly item: string) {
}
public getInfo() {
return this.item;
}
}
Я ожидал, что tsc выдаст ошибку из-за настройки strictNullChecks
моего tsconfig.
Есть ли способ заставить машинописный текст обнаружить эту ошибку и пометить ее компиляцию как ошибку?
Это мой текущий tsconfig.json
compilerOptions:
"compilerOptions": {
"target": "ES6",
"lib": [
"es6",
"es2017",
"DOM"
],
"module": "commonjs",
"pretty": true,
"outDir": "dist",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
}