我想使用泛型定义一个类型,该泛型将从两种字符串类型中声明串联的字符串。
我想允许key
仅接受字符串"onetwo"
。有可能吗?
在下面的尝试中,我得到了'string' is not assignable to type Some
和'string' is not assignable to type "one"
type One = "one";
type Two = "two";
type Some = One & Two;
let key: Some = "one" + "two";
// my goal is this
function concat<A extends string, B extends string>(first: A, second: B): A & B {
return a+b;
}
答案 0 :(得分:1)
交集类型表示同时属于两个成员类型的类型。在您的情况下,两个字符串的串联实际上是一个新的字符串文字类型。
Typescript当前(从3.2版开始)没有任何方式表示这种类型的操作