node.js - Konflikt mellem RequireJs og NodeJS-definitioner i Typescript
Jeg fik Typescript RequireJS definitionen fra Definitely Typed - som har en ambient deklaration af Require, der konflikter med NodeJs kommandoen "require". Her er deklarationen og fejlen:
Erklæring :
declare var require: Require;
Fejl :
C:/.../require.d.ts(320,13): error TS2134: Subsequent variable declarations must have the same type. Variable 'require' must be of type '{ resolve(id: string): string; cache: any; extensions: any; main: any; (id: string): any; }', but here has type 'Require'.
Svar #1
Det er sandt. Det, jeg måtte gøre, var simpelthen at bruge declare var require:any og ikke referere til nodejs eller RequireJS.
Ville sætte pris på, hvis du kan åbne en fejl her: https://github.com/borisyankov/DefinitelyTyped
Årsagen til, at det er tricky, er, fordi du faktisk ikke har både node og RequireJS i det samme miljø. Det er en genbrug på kompileringstidspunktet, vi skal understøtte.
Svar #2
Jeg havde dette problem, mens jeg forsøgte at integrere monaco-editor i min applikation. Løsningen er ret simpel.
Indsæt denne linje
<script>window.requirejs=window.require;</script>efter at have inkluderetrequire.jsellerloader.jsi dit html.Så i din .ts-fil, hvor du vil bruge requirejs, skal du erstatte alle
requiremedrequirejs. Dette alias er allerede defineret irequire.d.tsFærdig!