这类似于#40796374,但这是类型,而我使用接口.
鉴于以下代码:
interface Foo {
name: string;
}
function go() {
let instance: Foo | null = null;
let mutator = () => {
instance = {
name: 'string'
};
};
mutator();
if (instance == null) {
console.log('Instance is null or undefined');
} else {
console.log(instance.name);
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个错误,说'属性'名称'在类型上'不存在'永远'.
我不明白实例怎么可能是'从不'.任何人都可以对此有所了解吗?
提前致谢.
在下面的代码中,Typescript编译器表示属性'doit'在'never'类型中不存在.这可能是编译器错误吗?
class X {
public foo(): void {
if (this instanceof Y) {
} else {
this.doit();
}
}
private doit(): void {
}
}
class Y extends X {
}
Run Code Online (Sandbox Code Playgroud)
我找到了以下解决方法:
const temp = (this instanceof Y);
if (temp) {
} else {
this.doit();
}
Run Code Online (Sandbox Code Playgroud)
编译器对此等效代码没有任何问题,这再次让我怀疑这里存在编译器错误.
typescript ×2