Typescript cannot find the local es6 module; error TS2307: cannot find module

I find it difficult to get typescript to find out the form of the local es6 module:

Convert-time.js

export const minutes = sec => sec * 60
export const hours = sec => minutes(sec) * 60
export const days = sec => hours(sec) * 24
export const weeks = sec => days(sec) * 24
export const years = sec => days(sec) * 365

Note. I would like to figure out how to make this work without changing the convert-time.jstypescript file.

Here is the file I'm trying to import into it:

index.ts

/// <reference path="../typings/convert-time.d.ts" />

import { minutes, days } from '../test/helpers/convert-time'

Here is the type definition file I created:

Convert-time.d.ts:

declare module "convert-time" {
  export function minutes(sec: number): number;
  export function hours(sec: number): number;
  export function days(sec: number): number;
  export function weeks(sec: number): number;
  export function years(sec: number): number;
}

And here is my tsconfig:

tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitAny": false,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true,
    "jsx": "react"
  },
  "files": [
    "typings/index.d.ts",
    "typings/convert-time.d.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

Steps:

! , ? !

+4
1

ES6

ES6, "

a) tsconfig.json ES6 ES6 :

{
  ...
  "target": "es6",
  "module": "es6",
  ...
}

, ES6 NodeJS.

b). TypeScript JavaScript ES6 ES5, JavaScript tsconfig.json compilerOptions - , .js / :

{
  ...
  "target": "es5",
  "module": "commonjs",
  "allowJs": true,
  ...
}

, TypeScript / , : http://ivanz.com/2016/06/07/how-does-typescript-discover-type-declarations-definitions-javascript/

, JavaScript - ( NPM), :

  • /// <reference path="../typings/convert-time.d.ts" />, tsconfig.json
  • , convert-time.d.ts , convert-time.js
  • , declare module "convert-time" {. , .ds .js "" , "ambient" (. ) ( declare, , , , NPM)

:

..///Convert-time.js:

export const minutes = sec => sec * 60
export const hours = sec => minutes(sec) * 60
export const days = sec => hours(sec) * 24
export const weeks = sec => days(sec) * 24
export const years = sec => days(sec) * 365

..///-time.ts.d:

export function minutes(sec: number): number;
export function hours(sec: number): number;
export function days(sec: number): number;
export function weeks(sec: number): number;
export function years(sec: number): number;

index.ts:

import { minutes, days } from '../test/helpers/convert-time';

tsconfig.json( ES5)

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "allowJs": true,
    "noImplicitAny": false,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true,
    "jsx": "react"
  },
  "files": [
    "/test/helpers/convert-time.ts.d",
    "/test/helpers/convert-time.js",
    "index.ts"
  ]
}
+3

All Articles