我有一个这样简单的部分:
.select2-selection--multiple:after{
content:"";
position:absolute;
right:10px;
top:15px;
width:0;
height:0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #888;
}
在TypeScript Playground中,它显示了一个错误,它无法找到const getMethod = 'get';
const postMethod = 'post';
export type RequestMethod = getMethod | postMethod;
和getMethod
常量,但在右侧显示已编译的版本。
这段代码有什么问题?我之前习惯使用它,但现在它显示错误。
以下是错误的屏幕截图:
答案 0 :(得分:1)
根据spec,联合类型是两种类型的联合。常量不是类型。字符串文字是类型,同样根据spec,这就是你可以写'get'|的原因'POST'。
您可以使用常量的类型,它将是字符串文字类型:
const getMethod = 'get';
const postMethod = 'post';
export type RequestMethod = typeof getMethod | typeof postMethod;
答案 1 :(得分:0)
这是因为你试图将常量用作类型。
如果您希望RequestMethod
成为联合类型,则必须将getMethod
和postMethod
定义为类型。
type getMethod = 'get';
type postMethod = 'post';
export type RequestMethod = getMethod | postMethod;
答案 2 :(得分:0)
getMethod
应该是type | interface | enum
,而不是变量。
您可以尝试:
type getMethod = 'get';
type postMethod = 'post';
export type RequestMethod = getMethod | postMethod;
或
enum RequestMethod {
GET = 'get',
POST = 'post'
}
const getMethod = RequestMethod.GET;
function makeRequest(method: RequestMethod) {
}