首页
学习
活动
专区
工具
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(),它会执行基类的构造函数。

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

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

    83110

    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.9K30

    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; }

    85910

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

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

    3.5K40

    typescript 和class 类

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

    1.3K30

    【初学者笔记】🐯年要掌握 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 TS中的类 TypeScript 是面向对象的 JavaScript。...在TypeScript里允许开发者现在就使用这些特性,并且编译后的JavaScript可以在所有主流浏览器和平台上运行, 7 什么是构造函数,构造函数作用是什么? 构造函数 ,是一种特殊的方法。...主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。而TypeScript的构造函数用关键字constructor来实现。...一般情况下,创建一个类后并不能直接的对属性和方法进行引用,必须对类进行实例化,即创建一个对象。TypeScript中用new 关键字创建对象。

    3.7K50

    【万字长文】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 定义类 使用关键字

    62242

    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求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。

    77930

    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() {

    8810
    领券