两种字符串类型的交集

时间:2018-11-06 17:58:05

标签: typescript types

我想使用泛型定义一个类型,该泛型将从两种字符串类型中声明串联的字符串。 我想允许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; 
}

1 个答案:

答案 0 :(得分:1)

交集类型表示同时属于两个成员类型的类型。在您的情况下,两个字符串的串联实际上是一个新的字符串文字类型。

Typescript当前(从3.2版开始)没有任何方式表示这种类型的操作