這裏是我的代碼(以打字稿2.3.4):精確,打字稿在接口多類型的值:
type TokenType = "operator" | "doubleQuote" | "identifier" | "(end)";
interface Token {
type: TokenType;
value: string;
pos: number;
}
interface PosTokenOp {
type: "operator" | TokenType ;
value: string;
pos: number;
left: Token | null;
right: Token | null;
}
所以我想這PostTokenOp類型將只是:
interface PosTokenOp {
type: "operator" ;
value: string;
pos: number;
left: Token | null;
right: Token | null;
}
但是,如果我只把「運營商」它不認識到它是TokenType的一部分,我在我的代碼中有錯誤。
所以我想使PostTokenOp的類型等於「運營商」,並確切地說,該運營商是TokenType的價值之一。
如果任何人有任何想法如何做到這一點。
感謝和問候
你是什麼意思它不「承認它的TokenType的一部分」?這在2.3.3的[Playground](https://www.typescriptlang.org/play/)中適用於我:'declare let posTokenOp:PosTokenOp;讓令牌:Token = posTokenOp;'所以TypeScript當然確實意識到'PosTokenOp'是一個'Token'。另外,爲什麼你不能只聲明'接口PosTokenOps擴展令牌'?你能否提供更多信息讓別人重現你的問題?我也懷疑你需要枚舉來解決它,儘管你接受了這個答案。 – jcalz