我想做一些像下面的代码记录器。
是否可以将unknown
类型更改为specific
类型?
type Poo = {
prop1: 1 | 2 | 3;
prop2: "a" | "b" | "c";
}
type Log<T> = {
prop: keyof T;
prev: unknown; // Todo
cur: unknown; // Todo
}
const pooLogger: Log<Poo>[] = [];
const log: Log<Poo> = {
prop: "prop1",
prev: "a", // This line must cause error message like "a" is not 1 | 2 | 3
cur: 1
}
pooLogger.push(log)
就是1 | 2 | 3 | "a" | "b" | "c"
。
1条答案
按热度按时间s3fp2yjn1#
您可以使用条件类型来分发
T
属性的联合类型:Log<Poo>
将变为{prop: 'prop1', prev: 1|2|3} | {prop: 'prop2', prev: 'a'|'b'|'c'}