Giter VIP home page Giter VIP logo

Comments (6)

douglasb99 avatar douglasb99 commented on August 16, 2024

Furthermore I don't know exactly what it does but if it holds state between files and directories would be good to have an exclude option, to exclude certain files/sub-directories if it does not have.

from js-to-ts-converter.

XLCYun avatar XLCYun commented on August 16, 2024

I ran into a similar problem while converting a Class extended from Error. This might be what happened:
It seems that js-to-ts-converter had treated constructor as a property of class, it makes sense that in js we declare and add property by simply set a value to this.xxx in the constructor function, so parse the code of constructor function, and find any accessing like this.xxx, we get the properties of the class, but when we have a class extends from Error, in constructor, we usually need to access this.constructor(pass as argument to Error.captureStackTree), and js-to-ts-converter mistakes constructor is a property of this class. Here is the output error message:

Adding property declarations for properties: 'name', 'code', 'userMessage', 'constructor'
C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\node_modules\ts-morph\dist\manipulation\helpers\getRangeWithoutCommentsFromArray.js:18
                throw new errors.NotImplementedError(`Unexpected! Inserting syntax kind of ${utils_1.getSyntaxKindName(expectedKind)}` +
                ^
NotImplementedError: Unexpected! Inserting syntax kind of PropertyDeclaration, but Constructor was inserted.
    at Object.getRangeWithoutCommentsFromArray (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\node_modules\ts-morph\dist\manipulation\helpers\getRangeWithoutCommentsFromArray.js:18:23)
    at Object.insertIntoBracesOrSourceFileWithGetChildren (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\node_modules\ts-morph\dist\manipulation\manipulations\insertion.js:183:22)
    at insertChildren (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\node_modules\ts-morph\dist\compiler\ast\class\base\ClassLikeDeclarationBase.js:428:27)
    at ClassDeclaration.insertProperties (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\node_modules\ts-morph\dist\compiler\ast\class\base\ClassLikeDeclarationBase.js:169:20)
    at C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\dist\converter\add-class-property-declarations\add-class-property-declarations.js:63:26
    at Array.forEach (<anonymous>)
    at Object.addClassPropertyDeclarations (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\dist\converter\add-class-property-declarations\add-class-property-declarations.js:37:34)
    at Object.convert (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\dist\converter\convert.js:26:54)
    at doConvert (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\dist\js-to-ts-converter.js:62:22)
    at Object.convertJsToTsSync (C:\Users\Administrator\AppData\Roaming\npm\node_modules\js-to-ts-converter\dist\js-to-ts-converter.js:40:35)

Highlights:

verbose:            Adding property declarations for properties: 'name', 'code', 'userMessage', 'constructor'

It tried to add a property declarations for 'constructor'.

NotImplementedError: Unexpected! Inserting syntax kind of PropertyDeclaration, but Constructor was inserted.

from js-to-ts-converter.

theoparis avatar theoparis commented on August 16, 2024

I have the exact same problem as seen above.

from js-to-ts-converter.

agustinvinao avatar agustinvinao commented on August 16, 2024

Anyone found a workaround or a solution?

from js-to-ts-converter.

XLCYun avatar XLCYun commented on August 16, 2024

I have only one file one class that use this.constructor in the constructor function, so I just simply convert it by hand.

Anyone found a workaround or a solution?

from js-to-ts-converter.

gregjacobs avatar gregjacobs commented on August 16, 2024

Fixed in 0.17.1

from js-to-ts-converter.

Related Issues (17)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.