标签:typescript 里面 get GET https 类型 const type
尝试 as 断言
// 定义一个类型
type a = 'get'
// 定义一个函数, 参数类型为 'get'
function f(a: a) {
console.log(a)
}
f('a') // 可以执行
const obj = {
a: 'get'
}
f(obj.a) // 类型“string”的参数不能赋给类型“"get"”的参数。 这里的 obj 属性的值类型为 string 不符合期望类型 'get'
通常情况下, 一个对象的属性值都是基本类型和引用类型数据, 不太可能会出现 ‘get’, ‘post’, 这些个自己定义的字符串文字类型;这个时候可以使用断言了
f(obj.a as 'get')
把 obj.a 的属性值 定义为 get
类型, as 在这里把 string 类型 转换为了 get 类型
as const
You can use as const to convert the entire object to be type literals:
const req = { url: 'https://example.com', method: 'GET' } as const
相当于把这个对象转换为
type reqTranlate = { url: 'https://example.com' method: 'GET' }
但是 reqTranlate 在 ts 里面是无法访问其属性值的, 因为它是类型, 不是一个值, 而 const 就是把对象转换为一个可以访问其属性值的type
或者这种方式更方便理解一些, 它的值和类型是一样的
{key:value:type}
{ url: 'https://example.com':'https://example.com', method: 'GET' : 'GET'}
// 在这里如果不使用 as const 断言, 下面会提示类型错误
const req = { url: 'https://example.com', method: 'GET' } as const
type reqTranlate = {
url: 'https://example.com'
method: 'GET'
}
function f4(params: reqTranlate): void {}
f4(req)
标签:typescript,里面,get,GET,https,类型,const,type 来源: https://blog.csdn.net/weixin_43191327/article/details/123179554
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。