TypeScript版本: 2.3.0-dev.20170324代码
declare function f<T extends { [P in keyof T]: { x: number } }>(t: T): void;f({ arbitraryKey: { /*Here*/ }});
declare function f<T extends { [P in keyof T]: { x: number } }>(t: T): void;
f({
arbitraryKey: {
/*Here*/
}
});
预期行为:
自动补全给出 x 。
x
实际行为:
没有得到有用的自动补全。
q0qdq0h21#
这也是一个在typestyle/typestyle#144上的问题。我用Map类型模拟了另一个例子,其中这种情况发生在typescript playground上。试着在第17行输入,看看自动补全不知道发生了什么。我注意到如果你将变量作为返回值而不是依赖于函数的返回值,就不会发生这种情况。示例
1条答案
按热度按时间q0qdq0h21#
这也是一个在typestyle/typestyle#144上的问题。我用Map类型模拟了另一个例子,其中这种情况发生在typescript playground上。试着在第17行输入,看看自动补全不知道发生了什么。我注意到如果你将变量作为返回值而不是依赖于函数的返回值,就不会发生这种情况。
示例