首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Typescript中的符号构造函数错误:[ts]只能使用'new‘关键字调用void函数

Typescript中的符号构造函数错误是指在使用符号构造函数时,只能使用'new'关键字调用void函数的错误。这个错误通常发生在以下情况下:

  1. 使用符号构造函数时没有使用'new'关键字。
  2. 尝试使用'new'关键字调用一个被声明为void的函数。

解决这个错误的方法是确保在使用符号构造函数时使用'new'关键字,并检查被调用的函数是否被声明为void类型。

Typescript是一种静态类型的编程语言,它是JavaScript的超集,为JavaScript添加了静态类型检查和其他一些特性。Typescript提供了更强大的类型系统,可以在开发过程中提供更好的代码提示、错误检查和重构支持。

符号构造函数是Typescript中的一种特殊类型的构造函数,它用于创建符号类型的实例。符号类型是一种唯一且不可变的数据类型,用于表示对象的属性或方法的标识符。

在Typescript中,使用符号构造函数创建符号实例时,必须使用'new'关键字。这是因为符号构造函数返回的是一个符号对象,而不是一个普通的值。

以下是一个示例代码,演示了如何使用符号构造函数以及如何避免这个错误:

代码语言:txt
复制
const mySymbol: symbol = Symbol('mySymbol');

class MyClass {
  constructor() {
    // 使用'new'关键字调用符号构造函数
    const symbolInstance = new mySymbol(); // 错误:只能使用'new'关键字调用void函数
  }
}

// 正确的用法
const symbolInstance = new MyClass();

在这个示例中,我们声明了一个符号变量mySymbol,然后定义了一个类MyClass,在类的构造函数中使用了new关键字调用了mySymbol的符号构造函数。这样就避免了符号构造函数错误。

总结:

  • Typescript中的符号构造函数错误是指在使用符号构造函数时,只能使用'new'关键字调用void函数的错误。
  • 解决这个错误的方法是确保在使用符号构造函数时使用'new'关键字,并检查被调用的函数是否被声明为void类型。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Js 使用new关键字调用函数和直接调用函数区别

,除了使用new操作符且把使用包装函数叫做构造函数之外,这个模式跟工厂模式是一模一样。...注意:构造函数在不返回值情况下,默认返回新对象实例。 看到这里,我就将上面的例子new关键字去掉,发现和原来结果一样。...person.sayName(); 得出结论:使用new关键字是将函数当作构造函数调用,即为构造对象,若没有人为重写调用构造函数时返回值,那么返回对象是由解析器自己生成。...不使用new关键字调用函数,即为普通函数调用。 随即想到若是函数返回值是function型呢?...),虽然new函数与直接调用函数产生结果等同,但是是两个不同过程,一个是构造对象、一个是函数调用

3.7K10

【愚公系列】2021年12月 Typescript-类使用(封装,继承,多态)

文章目录 一、TS定义 1. ES5构造函数 2. ES6构造函数 2. TS构造函数,需要添加类型 3. 继承 4....静态属性 5.修饰属性和方法 6 typescript多态 7. typescript抽象类 二、命名空间 ---- 一、TS定义 1....它会调用之前定义构造函数,创建一个 Cat类型新对象,并执行构造函数初始化它。 3....继承 ts实现继承 extends、 super 在TypeScript里,我们可以使用常用面向对象模式。 基于类程序设计中一种最基本模式是允许使用继承来扩展现有的类。...派生类包含了一个构造函数,它 必须调用 super(),即在构造函数里访问 this 属性之前, 我们一定要调用 super(),它会执行基类构造函数

54620
  • typescript基础一览,助你从入门到放弃!

    调用,是在子类执行了父类构造函数,。...后,当使用$这个jq经典符号时候,编辑器就会飘红 ?...他是类装饰器,也上叫注解 他是一个函数,对类做一个修饰 可以通过@符号使用 在类创建好之后就自动执行,并不是实例化时候执行 装饰器接收是一个构造函数 多个装饰器,从下至上,从右往左执行 废话少说...1、装饰器配合泛型高端写法 //new意思表示这个这是一个构造函数,返回值是一个any类型,接受很多any类型参数数组,然后T继承了这个构造函数 function lol<T extends new...retrun一个真正装饰器 function lol(){ //new意思表示这个这是一个构造函数,返回值是一个any类型,接受很多any类型参数数组,然后T继承了这个构造函数 return function

    81710

    TypeScript 4.2 正式发布:更智能类型别名保留,声明缺失帮助函数,还有许多破坏性更新

    标记 逻辑表达式改进调用函数检查 解构变量可以显式标记为未使用 可选属性和字符串索引符号之间宽松规则 声明缺失帮助函数 破坏性更新 更智能类型别名保留 TypeScript 有一种为类型声明新名称方法...能够根据你在代码中使用它们方式来打印类型,意味着作为一名 TypeScript 用户,你可以避免显示一些非常庞大类型,这通常会转化为更好.d.ts文件输出、异常信息和编辑器快速信息和符号帮助类型显示...引入新标志 当 TypeScript 第一次引入索引符号时,你只能使用“方括号包括”元素获取语法(如person["name"])来获取它们声明属性。...进一步改进,TypeScript 调用函数检查现在可以用于&&和||表达式。...如上所述,在使用--strictNullChecks时,未调用函数检查现在将在&&和||表达式中一致地操作。

    3.2K20

    Typescript基础语法

    typescript与javascript typescript是一个js超集,个人理解为包装了面向对象编程逻辑语法糖,所以一般使用typescript语言来编写代码,然后再使用typescript...安装typescript npm install -g typescript 类型语法 通过在形参右侧使用 : 类型,代表限定形参类型。...其中,any代表任意类型,比较特殊有,void空返回值,只能赋值为undefined或者null,never类型代表永远没有返回值类型,比如抛出异常函数,死循环函数。...还支持类定义,如下为官方demo,通过class关键字定义类,类成员表示与接口一样,同时,可以为类设定constructor——构造函数,constructor形参可以添加public修饰符,代表同时该形参同时表示一个...类通过implements关键字,指定要实现接口,需要类具备满足接口定义成员 创建类对象使用new 调用构造函数 interface Man{ fullName: string;

    1.5K20

    TypeScript基础常用知识点总结

    let isDone: boolean = false; 注意,使用构造函数 Boolean 创造对象不是布尔值,编译会报错: let isMale: boolean = new Boolean(1)..."; (4)空值类型 JavaScript 没有空值(Void概念,在 TypeScript ,可以用 void 表示没有任何返回值函数。...Array 对象构造函数接受以下两种值:表示数组大小数值。初始化数组列表,元素使用逗号分隔值。...ES6 用法 属性和方法 使用 class 定义类,使用 constructor 定义构造函数。通过 new 生成新实例时候,会自动调用构造函数。...Animal('害恶细君'); console.log(a.sayHi()); // My name is 害恶细君 类继承 使用 extends 关键字实现继承,子类中使用 super 关键字调用父类构造函数和方法

    4.8K30

    TypeScript 常用知识总结

    而在TypeScript启用严格空校验(--strictNullChecks)特性,就可以使得null 和 undefined 只能被赋值给 void 或本身对应类型 never 是其它类型(包括...这意味着声明为 never 类型变量只能被 never 类型所赋值,在函数它通常表现为抛出异常或无法执行到终止点(例如无限循环) 变量不要使用 name 否则会与 DOM 全局 window 对象下...name 属性出现了重名 类继承使用关键字 extends,子类除了不能继承父类私有成员(方法和属性)和构造函数,其他都可以继承。...访问控制修饰符:TypeScript ,可以使用访问控制符来保护对类、变量、方法和构造方法访问。TypeScript 支持 3 种不同访问权限。...private : 私有,只能被其定义所在类访问。 类可以实现接口,使用关键字 implements,并将 interest 字段作为类属性使用

    1.8K30

    Typescript 2+迷你书 :从入门到不放弃

    Typescript难么 不夸大说,若是常规使用,上手还是相当快(有后端经验小伙伴) 浓浓C#风格,目前最新版本是typescript 2.2,我简称它为ts2 注:文章部分内容是会结合实际应用经验来说...,在--strictNullChecks模式下只能赋值给: void let temp7: null; // 只能赋值null,在--strictNullChecks模式下只能赋值给: void let...public,写不写看自己了 constructor(){ // 构造函数构造函数必须可以带上什么范围 // public,private,protected.../ 应该有人想问this,但是this范围该怎么样就怎么样,在被调用的上下文中确定 //适量使用箭头函数会让你写起来更舒服复制代码 泛型 泛型可以简单粗暴理解为,你传入什么类型,就返回什么类型值...// TS泛型只能用于接口,类(实例),不能用于枚举和命名空间 // 泛型用符号T表示,不一定要用写法 identity(arg: T): T { return arg; }

    85510

    typescript 和class 类

    字段表示对象有关数据。 构造函数 − 类实例化时调用,可以为类对象分配内存。 方法 − 方法为对象要执行操作。...this 关键字表示当前类实例化对象。注意构造函数参数名与字段名相同,this.engine 表示类字段。 此外我们也在类定义了一个方法 disp()。...new 关键字来实例化类对象,语法格式如下: var object_name = new class_name([ arguments ]) 类实例化时会调用构造函数,例如: var obj = new...类继承使用关键字 extends,子类除了不能继承父类私有成员(方法和属性)和构造函数,其他都可以继承。...true 访问控制修饰符 TypeScript ,可以使用访问控制符来保护对类、变量、方法和构造方法访问。TypeScript 支持 3 种不同访问权限。

    1.3K30

    盘点前端面试常见15个TS问题,你能答对吗?

    TS 在开发时就能给出编译错误, 而 JS 错误则需要在运行时才能暴露。 作为强类型语言,你可以明确知道数据类型。代码可读性极强,几乎每个人都能理解。 TS 非常流行,被很多业界大佬使用。...在TypeScript里允许开发者现在就使用这些特性,并且编译后JavaScript可以在所有主流浏览器和平台上运行, 7 什么是构造函数构造函数作用是什么? 构造函数 ,是一种特殊方法。...主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象语句中。而TypeScript构造函数关键字constructor来实现。...一般情况下,创建一个类后并不能直接对属性和方法进行引用,必须对类进行实例化,即创建一个对象。TypeScript中用new 关键字创建对象。...如果接口用于一个类的话,那么接口会表示“行为抽象” 对类约束,让类去实现接口,类可以实现多个接口 接口只能约束类公有成员(实例属性/方法),无法约束私有成员、构造函数、静态属性/方法 // 接口可以在面向对象编程中表示为行为抽象

    3.4K40

    【万字长文】TypeScript入门指南

    //unkonwn类型是不能够去调用属性跟函数,它是 any 类型对应安全类型接口和对象类型(TS -- 3)在 typescript ,我们定义对象方式要用关键字 interface(接口),...普通代码块和构造代码块静态代码块和构造代码块在声明上少一个 static 关键字执行时机:构造代码块在创建对象时被调用,每次创建对象都会调用一次,且优先于构造函数执行。...注:不是优先于构造函数执行,而是依托于构造函数,如果不创建对象就不会执行构造代码块普通代码块和构造代码块区别在于,构造代码块是在类定于,而普通代码块是在方法体定义,执行顺序和书写顺序一致。...互斥,不能够通过静态函数去访问内部变量,或者是在内部变量去调用外部静态函数 Person.run()//只能这样去调用 } static run (){...,不需要再new一下console.log(Person.aaa)let p = new Person("叶秋学长",22,false)interface 定义 类 ts interface 定义类 使用关键字

    50642

    【初学者笔记】🐯年要掌握 Typescript

    随着前端工程化发展,TypeScript 起到了相当大作用,可以帮助团队开发避免很多错误发生。 虽然使用 TypeScript 会让代码量增加,但是会让代码变更加健壮,更好维护。...();//hello,static 构造函数 构造函数 会在对象创建时调用 class Dog { constructor() { console.log("构造函数调用了") } } const...dog1 = new Dog();//构造函数调用了 在构造函数,可以通过 this 向新建对象添加属性 class Dog { name: String; age: number;...Dog('旺财'); dog.bark();//动物在叫~~ 子类继承父类时,如果子类也定义了构造方法,必须调用父类构造方法!...// 实际通过调用setter方法修改name属性 p1.name = '猪八戒'; 简写 在参数中加修饰符可以达到简写目的 不用声明 name:string 构造函数不用 this.name

    1.3K30

    学会这15个TS面试题,拿到更高薪offer

    TS 在开发时就能给出编译错误, 而 JS 错误则需要在运行时才能暴露。 作为强类型语言,你可以明确知道数据类型。代码可读性极强,几乎每个人都能理解。 TS 非常流行,被很多业界大佬使用。...console.log(result); 6 TSTypeScript 是面向对象 JavaScript。...在TypeScript里允许开发者现在就使用这些特性,并且编译后JavaScript可以在所有主流浏览器和平台上运行, 7 什么是构造函数构造函数作用是什么? 构造函数 ,是一种特殊方法。...主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象语句中。而TypeScript构造函数关键字constructor来实现。...一般情况下,创建一个类后并不能直接对属性和方法进行引用,必须对类进行实例化,即创建一个对象。TypeScript中用new 关键字创建对象。

    3.7K50

    TypeScript学习笔记(四)—— TypeScript提高

    属性和方法 使用 class 定义类,使用 constructor 定义构造函数。 通过 new 生成新实例时候,会自动调用构造函数。...Animal('Jack'); console.log(a.sayHi()); // My name is Jack 类继承 使用 extends 关键字实现继承,子类中使用 super 关键字调用父类构造函数和方法...实例属性 ES6 实例属性只能通过构造函数 this.xxx 来定义,ES7 提案可以直接在类里面定义: class Animal { name = 'Jack'; constructor...参数属性 修饰符和readonly还可以使用构造函数参数,等同于类定义该属性同时给该属性赋值,使代码更简洁。...,只允许出现在属性声明或索引签名或构造函数

    2.5K10

    Angular&TypeScript

    Angular&TypeScript 博客首页:蔚说博客 欢迎关注点赞收藏⭐️留言 作者水平很有限,如果发现错误,求告知,多谢! 有问题可私信交流!!!...装饰器 Angular&TypeScript TS简介 TS扩展特性: 访问修饰符特殊用法 面向对象编程-class和interface 装饰器 TS简介 TypeScript是JavaScript...TS学习手册直通车 TS扩展特性: TS是强类型语言—js是弱类型语言 强类型语言特点:变量,形参,函数都要声明类型 uname:string f1(n1:number):boolean{...return ture } 常用数据类型关键字:string、number、boolean、any、number[]、Object、Date、Void TS对属性和方法成员定义三种访问修饰符,...装饰器使用 @expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰声明信息做为参数传入。

    77730

    TypeScript基础总结

    null: 可以赋值给任何元素 undefined: 可以赋值给任何元素 void: 表示函数没有返回类型 接口 和其它语言(比如C++, java)不同是,TS 里接口可以描述变量、函数类型和类类型...另外,TS接口描述变量时可以使用?定义某个变量为可选变量。比如对某个对象进行约束时,如果对象某个属性设置成了可选,则传入对象可以不包含这个属性。...在TS里,泛型类型变量定义为T,需要使用包裹起来,这个时候函数会捕获入参类型,然后在后面就可以使用这个类型了。如下:。...类型推断,调用时不需要显示指明类型,推荐使用上面代码第二种方式。...抽象类 定义:通过 abstract 来修饰类称为抽象类。 特点: 抽象类不能直接实例化,即不能通过 new X()方式调用

    1K10

    【Vue3+TypeScript】CRM系统项目搭建之 — 关于拥抱 TypeScript 这件事【下】

    TypeScript 类型检测其实最主要针对并不是变量,而是函数。因为在 JavaScript 函数时不考虑参数类型和个数。..."; d = true; 因此,一个变量设置类型为 any 后,相当于对该变量关闭了 TS 类型检测,TS 压根就不管这个变量了,TypeScript 不建议使用 any。...静态属性 不需要生成实例就可以访问属性就是静态属性,只需要在类定义实例属性前使用 static 关键字来定义。 static age: number = 18; b....super 关键字 在子类 super 就代表当前类父类 由于在子类可能是需要额外定义其它类属性,因此会用到了 constructor 构造函数,因此需要使用到 super 关键字来对父类进行调用...,在子类构造函数必须对父类进行调用 super(name); // => 调用父类构造函数 } sayHello() {

    8510

    如何用 Decorator 装饰你 Typescript

    基本配置 由于 Decorator 在 Typescript 还是一项实验性给予支持,所以在 ts 配置配置文件,我们指明编译器对 Decorator 支持。...class definitions 类装饰器应用于构造函数之上,会在运行时当作函数调用,类构造函数作为其唯一参数。...注意,在 Typescript class 关键字只是 JavaScript 构造函数一个语法糖。由于类装饰器参数是一个构造函数,其也应该返回一个构造函数。...成员名字。 参数在函数参数列表索引。 参数装饰器只能用来监视一个方法参数是否被传入。...在实际项目开发,我们使用也还是挺多 **装饰器工厂就是一个简单函数,它返回一个表达式,以供装饰器在运行时调用。**其实说白了,就是一个函数 return 一个 Decorator。

    1.2K20
    领券