TypeScript版本:
3.5.3。同时在所有从2.7.2到3.5.1的Playground版本上复现。在2.4.1上不复现。
搜索词:
接口导出任何重复
代码
export interface A {
}
const A = {
};
预期行为:
快速查看const A
显示类型{}
实际行为:
快速查看const A
显示类型any
如果export
被移除,问题就会消失。
Playground链接:
Playground
相关问题:
TypeScript版本:
3.5.3。同时在所有从2.7.2到3.5.1的Playground版本上复现。在2.4.1上不复现。
搜索词:
接口导出任何重复
代码
export interface A {
}
const A = {
};
预期行为:
快速查看const A
显示类型{}
实际行为:
快速查看const A
显示类型any
如果export
被移除,问题就会消失。
Playground链接:
Playground
相关问题:
3条答案
按热度按时间eimct9ow1#
TypeScript/src/services/symbolDisplay.ts
Line 149 in fa3173f
| | type=isThisExpression ? typeChecker.getTypeAtLocation(location) : typeChecker.getTypeOfSymbolAtLocation(symbol.exportSymbol||symbol,location); |
symbol
hasexportSymbol
which refers to the exported interface, for that reasontypeChecker.getTypeOfSymbolAtLocation
returns type forexportSymbol
not for requested symbol. Is there any reason whysymbol
hasexportSymbol
which don't relate to each other?cc @DanielRosenwasser@RyanCavanaugh
g6baxovj2#
@andrewbranch 或 @weswigham 可能对此了解更多,但似乎正确的做法是尝试匹配每个符号的语义含义(我认为有
getSemanticMeaning
)。voj3qocg3#
我们应该发出一个“所有声明都必须导出或本地”的错误,据我所知。