principlejavascriptexpressCritical
TypeScript import/as vs import/require?
Viewed 0 times
typescriptrequireimport
Problem
I am using TypeScript with Express/Node.js.
For consuming modules, the TypeScript Handbook shows the following syntax:
But also the
I also searched the MSDN blog but could not find anything.
Which one is more correct as of early 2016? What are the differences between the two, if any?
Where is the best source to find information on the latest syntax to use so I can find this information in the future?
For consuming modules, the TypeScript Handbook shows the following syntax:
import express = require('express');But also the
typescript.d.ts file shows:import * as express from "express";I also searched the MSDN blog but could not find anything.
Which one is more correct as of early 2016? What are the differences between the two, if any?
Where is the best source to find information on the latest syntax to use so I can find this information in the future?
Solution
These are mostly equivalent, but
or (depending on your module loader)
Attempting to use
import * has some restrictions that import ... = require doesn't.import * as creates an identifier that is a module object, emphasis on object. According to the ES6 spec, this object is never callable or newable - it only has properties. If you're trying to import a function or class, you should useimport express = require('express');or (depending on your module loader)
import express from 'express';Attempting to use
import * as express and then invoking express() is always illegal according to the ES6 spec. In some runtime+transpilation environments this might happen to work anyway, but it might break at any point in the future without warning, which will make you sad.Code Snippets
import express = require('express');import express from 'express';Context
Stack Overflow Q#35706164, score: 215
Revisions (0)
No revisions yet.