翻译结果为:**TypeScript版本:**3.1.0-dev.20180810
**搜索词:**自动补全推断
代码
type ValueTypes = 1 | 2 | 3;
export type RecordValues<Props extends string | number | symbol> = Record<
Props,
ValueTypes
>;
export function identityFn<RV extends RecordValues<keyof RV>>(value: RV) {
return value;
}
const recordValue: RecordValues<"asdf"> = {
asdf: 2 //Autotcomplete works fine for the value here
};
identityFn({
asdf: 1 //Autocomplete shows every type available
});
预期行为:
对于第二个评论中的值的自动补全,与第一个相同。请注意,我所说的不是键,而是值。
实际行为:
值的自动补全建议了所有可用的类型。
**Playground链接:**link
相关问题:#14841
9条答案
按热度按时间btqmn9zl1#
这在TypeScript@next中无法复现。
t8e9dugd2#
@sheetalkamat 我刚刚尝试了3.2.0-dev.20181110版本,但仍然存在问题。
2skhul333#
问题在于,在第一个示例中,我们显示了
1
、2
和3
作为推荐完成项。对于第二个示例,我们没有得到上下文类型,也没有推荐的完成项。kqhtkvqz4#
@andrew-w-ross Are you still seeing this with typescript@next?
If yes can you please provide tsserver log.
You can upload logs by following these steps:
open tsserver log
from command paletteor
code --upload-logs
on the command line (orcode-insiders --upload-logs
if using vscode insiders) and follow instructions and Then share the log file IDgojuced75#
@sheetalkamat 是的,你得到的行为是完美的。不幸的是,我没有得到那个。在稳定代码和内部人员中尝试了ts
3.3.0-dev.20190104
,仍然得到了原始行为。这是日志ID 3618733104。
wz8daaqr6#
@andrew-w-ross 看起来问题只有在输入
1
之前才会出现(导致错误类型)。非常感谢,因为现在我们已经找到了重现问题的方法。uidvcgyl7#
你是否还需要更多的信息?
ssgvzors8#
对不起,我忘记更新标签了。
wqsoz72f9#
关于这个问题有什么更新吗?