我对as const演员表感到困惑。我检查了一些文件和视频,但没有完全理解。
我担心的是as const下面代码中的含义是什么,使用它有什么好处?
const args = [8, 5] as const;
const angle = Math.atan2(...args);
console.log(angle);
Run Code Online (Sandbox Code Playgroud) 有什么区别吗
const b = 'test' as string;
Run Code Online (Sandbox Code Playgroud)
和
const b: string = 'test';
Run Code Online (Sandbox Code Playgroud) 当我正在学习Angular 2时,我使用了一个observable来通过API获取一些数据.像这样:
getPosts() {
return this.http.get(this._postsUrl)
.map(res => <Post[]>res.json())
.catch(this.handleError);
}
Run Code Online (Sandbox Code Playgroud)
我的帖子模型看起来是这样的:
export class Post {
constructor(
public title: string,
public content: string,
public img: string = 'test') {
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是地图运算符对Post模型没有任何作用.例如,我尝试为img值设置默认值,但在视图post.img中没有显示任何内容.我甚至用另一个模型(Message [])更改了Post [],并且行为没有改变.任何人都可以解释这种行为吗?
在下面的代码中使用as或 有什么区别<>?
选项 A - 使用 'as' 作为返回值
convertResultToParams(columnView:IColumnViewResult):IColumnViewParams {
const params = {};
Object.keys(this.getDefaultParams())
.map(key => params[key] = columnView[key]);
return params as IColumnViewParams;
}
Run Code Online (Sandbox Code Playgroud)
选项 B - 使用“括号”作为返回值
convertResultToParams(columnView:IColumnViewResult):IColumnViewParams {
const params = {};
Object.keys(this.getDefaultParams())
.map(key => params[key] = columnView[key]);
return <IColumnViewParams>params;
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能在变量声明中声明类型?
if (process.env.NODE_ENV !== 'production') {
(WithUser as any).displayName = wrapDisplayName(Component, 'withUser');
}
Run Code Online (Sandbox Code Playgroud)
我不确定as是否是关键字。但是“ as”关键字在js中有什么作用?