Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TypeScript类中,#符号是什么意思?_Typescript_Typescript Typings - Fatal编程技术网

在TypeScript类中,#符号是什么意思?

在TypeScript类中,#符号是什么意思?,typescript,typescript-typings,Typescript,Typescript Typings,例如,如果我有这个类: 类型Url:string; 甲级{ #url:url } #符号代表什么?谢谢 这是TypeScript 3.8中的一个新版本。该字段可以从类内的方法访问,但不能从类外访问 更多信息: 文档中的示例: 作为补充,TypeScriptprivateclass成员关键字只是语法糖,作用于类型级别(TypeScript编译器)。在运行时,private类成员实际上是公共的。我们可以通过对象.assign(这个,{ 字段:value})在类内,该类与TypeScript

例如,如果我有这个类:

类型Url:string;
甲级{
#url:url
}
#
符号代表什么?谢谢

这是TypeScript 3.8中的一个新版本。该字段可以从类内的方法访问,但不能从类外访问

更多信息:

文档中的示例:

作为补充,TypeScript
private
class成员关键字只是语法糖,作用于类型级别(TypeScript编译器)。在运行时,
private
类成员实际上是公共的。我们可以通过
对象.assign(这个,{
字段:value})
在类内,该类与TypeScript
private
字段一起工作,但不与
(EcmaScript private)字段一起工作

TypeScript团队需要同时保留语法和行为,以避免破坏现有的TypeScript代码基础。作为开发人员,我们可以在两种语法之间进行选择:

  • ECMAScript private更严格,但可能还没有得到足够的支持。也许是为了强制使用公共API,或者使用混合代码基JavaScript/TypeScript
  • typescriptprivate更为常见,特别是因为它的语法与Java和C#中的相同。对于一个不公开的完整类型脚本代码库来说,现在已经足够了。但是,由于TypeScript的目的是向ECMAScript靠拢,现在使用这种新语法可能是一个好习惯
class Animal {
    #name: string;
    constructor(theName: string) { this.#name = theName; }
}

new Animal("Cat").#name; // Property '#name' is not accessible outside class 'Animal' because it has a private identifier.