我正在使用Typescript 3.2.2,但无法实现最基本的类型保护:
interface Bird {
fly(): boolean;
}
interface Fish {
swim(): boolean;
}
function swimIfYouCan(x: Fish | Bird) {
if ((<Fish>x).swim) {
return true
}
}
在 WebStorm 中会产生 Error:(50, 11) TS2693: 'Fish' only refers to a type, but is being used as a value here.
,而从 yarn
得到的错误是 SyntaxError: /Users/sea-kent/git/docket-management/webapp/src/App.tsx: Unexpected token (51:8)
。需要配置启用此语法吗?
<Fish>
可以作为一个元素 - 使用x as Fish
替代。例如请参见 https://dev59.com/nFsX5IYBdhLWcg3wHcXA#54614279 和 https://www.typescriptlang.org/docs/handbook/jsx.html。 - jonrsharpe