Typescript: ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒ‘ć‚¹ćƒžćƒƒćƒ—ćÆ态ē™ŗč”Œć•ć‚ŒćŸć‚³ćƒ¼ćƒ‰ć§č§£ę±ŗć•ć‚Œć¾ć›ć‚“

ä½œęˆę—„ 2016幓09꜈12ę—„  Ā·  76ć‚³ćƒ”ćƒ³ćƒˆ  Ā·  ć‚½ćƒ¼ć‚¹: microsoft/TypeScript

TypeScriptćƒćƒ¼ć‚øćƒ§ćƒ³ļ¼š 2.0.2

ć‚³ćƒ¼ćƒ‰

_tsconfig.json_

{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs",
        "baseUrl": ".",
        "paths": {
            "foo/*": ["*"]
        }
    }
}

_app.ts_

import {Foo} from 'foo/utils';
console.log(Foo);

_utils.ts_

export const Foo = 'Foo';

äŗˆęƒ³ć•ć‚Œć‚‹č”Œå‹•ļ¼š

% ./node_modules/.bin/tsc && node app.js
Foo

å®Ÿéš›ć®å‹•ä½œļ¼š

% ./node_modules/.bin/tsc && node app.js
module.js:457
    throw err;
    ^

Error: Cannot find module 'foo/utils'
    at Function.Module._resolveFilename (module.js:455:15)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/mfischer/src/videmo/tsc-test/app.js:2:17)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)

_app.js_

"use strict";
const utils_1 = require('foo/utils');
console.log(utils_1.Foo);

TypescriptćÆę­£ć—ć„ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚’č¦‹ć¤ć‘ć¦ć„ć¾ć™ćŒć€å‡ŗåŠ›ć•ć‚ŒćŸć‚³ćƒ¼ćƒ‰ć§ćÆć€ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒ‘ć‚¹ćÆtsconfig.jsonć‹ć‚‰ć®ćƒ‘ć‚¹ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’é©ē”Øć™ć‚‹ä»£ć‚ć‚Šć«ć€ćć®ć¾ć¾ę®‹ć•ć‚Œć¦ć„ć¾ć™ć€‚ ę˜Žć‚‰ć‹ć«ć€ćƒŽćƒ¼ćƒ‰ćÆćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚’č¦‹ć¤ć‘ć‚‹å “ę‰€ć‚’ēŸ„ć‚Šć¾ć›ć‚“ć€‚ typescriptćŒćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒ‘ć‚¹ć‚’č§£ę±ŗć—ć€ćƒŽćƒ¼ćƒ‰ćŒč§£ę±ŗć§ćć‚‹ć‚‚ć®ć«ē½®ćę›ćˆć‚‹ć“ćØć‚’ęœŸå¾…ć—ć¦ć„ć¾ć—ćŸć€‚

ć“ć®å‹•ä½œćŒę„å›³ć•ć‚Œć¦ć„ć‚‹å “åˆć€ćƒ‘ć‚¹ćƒžćƒƒćƒ—ć‚’ä½æē”Øć—ć¦ćƒŽćƒ¼ćƒ‰ćØēµ„ćæåˆć‚ć›ć¦relative-import-hellć‚’č§£ę±ŗ恙悋恫ćÆć©ć†ć™ć‚Œć°ć‚ˆć„ć§ć™ć‹ļ¼Ÿ

Working as Intended

ęœ€ć‚‚å‚č€ƒć«ćŖć‚‹ć‚³ćƒ”ćƒ³ćƒˆ

ę”¾å‡ŗć•ć‚ŒćŸćƒ‘ć‚¹åćŒå®Ÿéš›ć«ę­£ć—ććŖć„å “åˆć€čŖ°ć‹ćŒć“ć®ę©Ÿčƒ½ć®ćƒć‚¤ćƒ³ćƒˆć‚’ę•™ćˆć¦ć‚‚ć‚‰ćˆć¾ć™ć‹ļ¼Ÿ ć¤ć¾ć‚Šć€TypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒćć‚Œć«ęŗ€č¶³ć—ć¦ć„ć‚‹ćŒć€ęœ€ēµ‚ēµęžœćŒå®Ÿč”ŒåÆčƒ½ć§ćŖć„å “åˆć€ć“ć®ę©Ÿčƒ½ć®ćƒ¦ćƒ¼ć‚¹ć‚±ćƒ¼ć‚¹ćÆä½•ć§ć™ć‹ļ¼Ÿ

å…Øć¦ć®ć‚³ćƒ”ćƒ³ćƒˆ76件

ē”Ÿęˆć•ć‚ŒćŸå‡ŗåŠ›ć§browserify悄webpackćŖć©ć®ä»–ć®ćƒćƒ³ćƒ‰ćƒ«ćƒ„ćƒ¼ćƒ«ć‚’ä½æē”Øć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ ć¾ćŸćÆć€ć“ć‚ŒćŒćƒŽćƒ¼ćƒ‰äøŠć§ē›“ęŽ„å®Ÿč”Œć•ć‚Œć‚‹ć“ćØć‚’ęœŸå¾…ć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ

ć“ć®å‹•ä½œćŒę„å›³ć•ć‚Œć¦ć„ć‚‹å “åˆć€ćƒ‘ć‚¹ćƒžćƒƒćƒ—ć‚’ä½æē”Øć—ć¦ćƒŽćƒ¼ćƒ‰ćØēµ„ćæåˆć‚ć›ć¦relative-import-hellć‚’č§£ę±ŗ恙悋恫ćÆć©ć†ć™ć‚Œć°ć‚ˆć„ć§ć™ć‹ļ¼Ÿ

ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆć‚’čæ½åŠ ć™ć‚‹ćŸć‚ć«ć€ "paths"ćÆ态Node.js require()ćØćÆē•°ćŖć‚Šć€å†ćƒžćƒƒćƒ”ćƒ³ć‚°ć‚’åÆčƒ½ć«ć™ć‚‹ćƒ­ćƒ¼ćƒ€ćƒ¼ć§ä½æē”Øć™ć‚‹ć‚ˆć†ć«čØ­čØˆć•ć‚Œć¦ć„ć¾ć™ć€‚ ę„å›³ć•ć‚ŒćŸå‹•ä½œćÆ态TypeScriptćŒć•ć¾ć–ć¾ćŖćƒ­ćƒ¼ćƒ€ćƒ¼ć«ć‚ˆć£ć¦ä½æē”Øć•ć‚Œć‚‹ć•ć¾ć–ć¾ćŖćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ID恮ć‚æć‚¤ćƒ—ęƒ…å ±ć‚’č§£ę±ŗć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹ć“ćØć§ć‚ć‚Šć€ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ID悒ę›ø恍ꏛ恈悋恓ćØ恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ åŸŗęœ¬ēš„ć«ć€ćć‚ŒćÆ恂ćŖćŸćŒę€ć£ćŸć“ćØć‚’ć—ć¾ć›ć‚“ć€‚ ć¾ćŸć€ē§ć®ę„č¦‹ć§ćÆć€ćƒ­ćƒ¼ćƒ€ćƒ¼ć®č§£ę±ŗꈦē•„ć‚’åę˜ ć™ć‚‹ę©Ÿčƒ½ć®ćæć‚’å‚™ćˆć¦ć„ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

@mhegazyćƒŽćƒ¼ćƒ‰ćØē›“ęŽ„é€£ęŗ恙悋恓ćØć‚’ęœŸå¾…ć—ć¦ć„ć¾ć—ćŸć€‚ 惐惃ć‚Æć‚Øćƒ³ćƒ‰ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ē”Ø恧恙怂 @kitsonkćÆć€ć“ć‚ŒćŒę„å›³ć—ćŸćØćŠć‚Šć«ę©Ÿčƒ½ć—ć¦ćŠć‚Šć€typescriptćŒćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒ‘ć‚¹ć‚’ę›ø恍ꏛ恈ćŖ恄恓ćØ悒ē¤ŗć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ

ćÆ恄态恓悌ćÆę„å›³ć•ć‚Œć¦ć„ć¾ć—ćŸ-ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ļ¼ˆćƒ¦ćƒ¼ć‚¶ćƒ¼ć«ć‚ˆć£ć¦ä½œęˆć•ć‚ŒćŸć‚‚恮ļ¼‰ćŒå®Ÿč”Œę™‚ć«č§£ę±ŗć§ćć‚‹ćŒć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ć«ć‚ˆć£ć¦ę¤œå‡ŗ恕悌ćŖć‹ć£ćŸå “åˆć®å®Ÿč”Œę™‚ćØčØ­čØˆę™‚ć®ć‚Øć‚Æć‚¹ćƒšćƒŖć‚Øćƒ³ć‚¹ć®äøäø€č‡“ć‚’č»½ęø›ć™ć‚‹ć“ćØ恧恙怂 恓恮Ꙃē‚¹ć§ć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ćÆåøøć«ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒęä¾›ć—ćŸćƒ¢ć‚øćƒ„ćƒ¼ćƒ«IDćŒę­£ć—ć„ćØęƒ³å®šć—ć€ćć‚Œć‚’å¤‰ę›“ć—ć‚ˆć†ćØćÆć—ć¾ć›ć‚“ć€‚

äŗ†č§£ć€ć‚ć‚ŠćŒćØ恆怂 ć‚ˆć‚Šå¤šćć®äŗŗć€…ćŒę··ä¹±ć™ć‚‹ć®ć‚’é˜²ććŸć‚ć«ć€ć“ć‚Œć‚’ć‚ˆć‚Šć‚ˆćę–‡ę›øåŒ–ć™ć‚‹ć“ćØćŒå½¹ē«‹ć¤ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ć€‚ ē¾åœØ态 httpsļ¼š//www.npmjs.com/package/module-alias悒ä½æē”Øć—ć¦ćƒŽćƒ¼ćƒ‰ć§å‹•ä½œć•ć›ć¦ć„ć¾ć™ć€‚

TS恮ē«‹å “ć‚’č©•ä¾”ć—ć€ćƒŽćƒ¼ćƒ‰ć‚’ä½æē”Ø恗恦恄悋ē§ćŸć”恮90ļ¼…ć®ćƒ¦ćƒ¼ć‚¹ć‚±ćƒ¼ć‚¹ć«åÆ¾ć™ć‚‹ē°”単ćŖč§£ę±ŗē­–ć‚’ē¤ŗć—ć¾ć™ćŒć€ baseUrlē›øåƾēš„ćŖrequire()å‘¼ć³å‡ŗć—ć‚’å¤§éØ’ćŽć›ćšć«ä½æē”Ø恧恍悋ä¾æåˆ©ć•ć‚’ę±‚ć‚ć¦ć„ć¾ć™ć€‚

ć“ć®ć‚½ćƒŖćƒ„ćƒ¼ć‚·ćƒ§ćƒ³ćÆć€ćƒŽćƒ¼ćƒ‰ć®require()å‘¼ć³å‡ŗ恗悒惕惃ć‚Æ恗态怌mainć€ć®dirname悒ä½æē”Ø恗恦ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’č§£ę±ŗ恗恦baseUrl悒ęØ”å€£ć—ć¾ć™ć€‚ ć—ćŸćŒć£ć¦ć€ baseUrlć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚‚ć€ć‚½ćƒ¼ć‚¹ć€Œmain.ts怍恌配ē½®ć•ć‚Œć¦ć„ćŸć®ćØåŒć˜ćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恫čØ­å®šć•ć‚Œć¦ć„ć‚‹ćØęƒ³å®šć—ć¦ć„ć¾ć™ć€‚

ä½æē”Ø恙悋恫ćÆć€ć“ć®å°ć•ćŖć‚³ćƒ¼ćƒ‰ć®ćƒćƒ£ćƒ³ć‚Æ悒怌main.tsć€ć®äøŠéƒØć«č²¼ć‚Šä»˜ć‘ć¾ć™ć€‚

import * as path from 'path'
import * as fs from 'fs'
(function() {
  const CH_PERIOD = 46
  const baseUrl = path.dirname(process['mainModule'].filename)
  const existsCache = {d:0}; delete existsCache.d
  const moduleProto = Object.getPrototypeOf(module)
  const origRequire = moduleProto.require
  moduleProto.require = function(request) {
    let existsPath = existsCache[request]
    if(existsPath === undefined) {
      existsPath = ''
      if(!path.isAbsolute(request) && request.charCodeAt(0) !== CH_PERIOD) {
        const ext = path.extname(request)
        const basedRequest = path.join(baseUrl, ext ? request : request + '.js')
        if(fs.existsSync(basedRequest)) existsPath = basedRequest
        else {
          const basedIndexRequest = path.join(baseUrl, request, 'index.js')
          existsPath = fs.existsSync(basedIndexRequest) ? basedIndexRequest : ''
        }
      }
      existsCache[request] = existsPath
    }
    return origRequire.call(this, existsPath || request)
  }
})()

mika-fischer恌čØ€åŠć—ćŸmodule-aliasćƒ‘ćƒƒć‚±ćƒ¼ć‚ø悒ä½æē”Øć™ć‚‹å “åˆć€ćƒ‘ćƒƒć‚±ćƒ¼ć‚ø恫ē™»éŒ²ć™ć‚‹ćƒ‘ć‚¹ćÆ/恧ēµ‚ć‚ć‚‹ć¹ćć§ćÆćŖćć€ćƒ‘ć‚¹ćÆćƒ‘ć‚¹ć«ē›øåƾēš„恧恂悋恓ćØ恫ę³Øę„ć—ć¦ćć ć•ć„ć€‚ć“ć“ć§ć€ package.jsonćÆļ¼ˆę˜Žć‚‰ć‹ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ćŒć€ę˜Žē¢ŗ恫恙悋恮ćÆč‰Æ恄恓ćØ恧恙ļ¼‰ć€

ć—ćŸćŒć£ć¦ć€tsconfigćƒ•ć‚”ć‚¤ćƒ«ć«ć“ć‚ŒćŒć‚ć‚‹å “åˆļ¼š

"outDir": "./dist",
"baseUrl": ".",
"paths": {
  "foo/*": ["./src"]
}

恓悌悒package.json恫ē™»éŒ²ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ļ¼š

"_moduleAliases": {
  "foo": "dist"
}

ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆć‚’čæ½åŠ ć™ć‚‹ćŸć‚ć«ć€ć€Œćƒ‘ć‚¹ć€ćÆ态Node.js requireļ¼ˆļ¼‰ćØćÆē•°ćŖć‚Šć€å†ćƒžćƒƒćƒ”ćƒ³ć‚°ć‚’åÆčƒ½ć«ć™ć‚‹ćƒ­ćƒ¼ćƒ€ćƒ¼ć§ä½æē”Øć™ć‚‹ć‚ˆć†ć«čØ­čØˆć•ć‚Œć¦ć„ć¾ć™ć€‚ ę„å›³ć•ć‚ŒćŸå‹•ä½œćÆ态TypeScriptćŒć•ć¾ć–ć¾ćŖćƒ­ćƒ¼ćƒ€ćƒ¼ć«ć‚ˆć£ć¦ä½æē”Øć•ć‚Œć‚‹ć•ć¾ć–ć¾ćŖćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ID恮ć‚æć‚¤ćƒ—ęƒ…å ±ć‚’č§£ę±ŗć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹ć“ćØć§ć‚ć‚Šć€ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ID悒ę›ø恍ꏛ恈悋恓ćØ恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ åŸŗęœ¬ēš„ć«ć€ćć‚ŒćÆ恂ćŖćŸćŒę€ć£ćŸć“ćØć‚’ć—ć¾ć›ć‚“ć€‚ ć¾ćŸć€ē§ć®ę„č¦‹ć§ćÆć€ćƒ­ćƒ¼ćƒ€ćƒ¼ć®č§£ę±ŗꈦē•„ć‚’åę˜ ć™ć‚‹ę©Ÿčƒ½ć®ćæć‚’å‚™ćˆć¦ć„ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

å¤§ććŖ惗惭ć‚ø悧ć‚Æćƒˆć§ć‚»ćƒƒćƒˆć‚¢ćƒƒćƒ—ć—ć‚ˆć†ćØ恗恦Ꙃ間悒ē„”é§„ć«ć—ćŸå¾Œć€ć“ć“ć«ę„ć¾ć—ćŸć€‚
ć“ć®å‹•ä½œćŒć»ćØć‚“ć©å¤‰ć‚ć‚‰ćŖć„å “åˆćÆć€ć“ć®å•é”Œć‚’é–‰ć˜ć‚‹å‰ć«ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’ę›“ę–°ć™ć‚‹ć“ćØć‚’ćŠå‹§ć‚ć—ć¾ć™ć€‚
å…¬å¼ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆhttps://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mappingļ¼…20docs恫ćÆć€ć€Œå†ćƒžćƒƒćƒ”ćƒ³ć‚°ć‚’åÆčƒ½ć«ć™ć‚‹ćƒ­ćƒ¼ćƒ€ćƒ¼ć€ć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚‹ć“ćØ恫恤恄恦ćÆä½•ć‚‚čØ˜č¼‰ć•ć‚Œć¦ć„ć¾ć›ć‚“ć€‚

惗惭ć‚ø悧ć‚Æćƒˆćƒ•ć‚©ćƒ«ćƒ€ć«ć€Œtspathć€ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¦å®Ÿč”Œć—ć¾ć™... httpsļ¼š //www.npmjs.com/package/tspath

ć¾ćŸć€ć€Œmomothepug/tsmodule-aliasć€ć‚’č©¦ć—ć¦ćƒ‘ć‚¹č§£ę±ŗ悒ć‚Ø悤ćƒŖć‚¢ć‚¹ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

https://www.npmjs.com/package/@momothepug/tsmodule -alias

https://www.npmjs.com/package/module-alias恠恑恌ē§ć®ćŸć‚ć«åƒć„ćŸ...

ē§ć‚‚ć“ć‚Œć‚’module-aliasć§ę©Ÿčƒ½ć•ć›ć‚‹ć“ćØćŒć§ćć¾ć—ćŸćŒć€tsconfig.jsonćØpackage.json恮äø”ę–¹ć§ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’čæ½č·”恙悋åæ…č¦ćŒć‚ć‚‹ćØ恄恆ꬠē‚¹ćŒć‚ć‚Šć¾ć—ćŸć€‚ čŖ°ć‹ćŒć‚‚ć£ćØē°”単ćŖč§£ę±ŗē­–ć‚’č¦‹ć¤ć‘ć¾ć—ćŸć‹ļ¼Ÿ

@mattyclarksonćŒęŒ‡ę‘˜ć—ćŸč§£ę±ŗē­–ć‚‚ę©Ÿčƒ½ć—ć¾ć™ćŒć€ts-nodećØäø¦ć¹ć¦ä½æē”Øć™ć‚‹ę–¹ę³•ćŒč¦‹ć¤ć‹ć‚Šć¾ć›ć‚“ć§ć—ćŸć€‚ ä½•ć‹ę”ˆćÆļ¼Ÿ

https://github.com/momoThePug/tsmodule-aliasć‚’ć”č¦§ćć ć•ć„

2018-05-31 15:04 GMT-05ļ¼š00 [email protected] ļ¼š

ē§ć‚‚ć“ć‚Œć‚’ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚Ø悤ćƒŖć‚¢ć‚¹ć§å‹•ä½œć•ć›ć‚‹ć“ćØćŒć§ćć¾ć—ćŸćŒć€ę¬ ē‚¹ćŒć‚ć‚Šć¾ć™
tsconfig.jsonćØ恮äø”ę–¹ć§ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’čæ½č·”恙悋åæ…č¦ćŒć‚ć‚‹ć“ćØ
package.json怂 čŖ°ć‹ćŒć‚‚ć£ćØē°”単ćŖč§£ę±ŗē­–ć‚’č¦‹ć¤ć‘ć¾ć—ćŸć‹ļ¼Ÿ

@mattyclarksonć«ć‚ˆć£ć¦ęŒ‡ę‘˜ć•ć‚ŒćŸč§£ę±ŗē­–
https://github.com/mattyclarksonć‚‚ę©Ÿčƒ½ć—ć¾ć™ćŒć€ę–¹ę³•ćŒč¦‹ć¤ć‹ć‚Šć¾ć›ć‚“ć§ć—ćŸ
ts-nodećØäø¦ć¹ć¦ä½æē”Øć—ć¾ć™ć€‚ ä½•ć‹ę”ˆćÆļ¼Ÿ

ā€”
ć‚³ćƒ”ćƒ³ćƒˆć—ćŸć®ć§ć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-393662306 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/ACKT9JWIkb0Wekz0H_Z3zKXvoE-49EIBks5t4EzkgaJpZM4J6vZQ
怂

@DanyelMoralesć«ę„Ÿč¬ć—ć¾ć™ć€ć“ć‚ŒćÆęœ¬å½“ć«ä¾æåˆ©ć§ć™ć€‚

ć©ć†ć„ćŸć—ć¾ć—ć¦ļ¼ :)

2018-05-31 16:35 GMT-05ļ¼š00 [email protected] ļ¼š

恂悊恌ćØ恆@DanyelMoraleshttps ://github.com/DanyelMorales 态恓悌ćÆęœ¬å½“ć«
ćƒćƒ³ćƒ‡ć‚£ć€‚

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-393688075 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/ACKT9GNo30wNv4ZWzSwm_Lv4vesLPI3xks5t4GIzgaJpZM4J6vZQ
怂

ę”¾å‡ŗć•ć‚ŒćŸćƒ‘ć‚¹åćŒå®Ÿéš›ć«ę­£ć—ććŖć„å “åˆć€čŖ°ć‹ćŒć“ć®ę©Ÿčƒ½ć®ćƒć‚¤ćƒ³ćƒˆć‚’ę•™ćˆć¦ć‚‚ć‚‰ćˆć¾ć™ć‹ļ¼Ÿ ć¤ć¾ć‚Šć€TypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒćć‚Œć«ęŗ€č¶³ć—ć¦ć„ć‚‹ćŒć€ęœ€ēµ‚ēµęžœćŒå®Ÿč”ŒåÆčƒ½ć§ćŖć„å “åˆć€ć“ć®ę©Ÿčƒ½ć®ćƒ¦ćƒ¼ć‚¹ć‚±ćƒ¼ć‚¹ćÆä½•ć§ć™ć‹ļ¼Ÿ

ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć§ćÆćŖć„ć‚‚ć®ć€ć¤ć¾ć‚Šć‚¤ćƒ³ćƒćƒ¼ćƒˆć§ćÆćŖ恄悂恮恫åÆ¾ć—ć¦ć€ć©ć®ć‚ˆć†ć«ē›øåÆ¾ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ć‚’č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć‹ļ¼Ÿ

ä»„å‰č”Œć£ć¦ć„ćŸć‚½ćƒ¼ć‚¹ćƒ•ć‚”ć‚¤ćƒ«ć«é–¢é€£ć™ć‚‹ē‰¹å®šć®ćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ悒čŖ­ćæå–ć‚‹ćƒŽćƒ¼ćƒ‰ć‚¹ć‚ÆćƒŖ惗惈恧ćÆć€ę¬”ć®ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

const starterDir = path.resolve(__dirname, './templates/starter')

typescriptćÆć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć—ć€ļ¼ˆconfig恫åŸŗ恄恄恦ļ¼‰åˆ„ć®ćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恫ę›øćč¾¼ć‚€ćŸć‚ć€__dirnamećÆäøŠčØ˜ć®ćƒ‘ć‚¹ć®č§£ę±ŗ恫恤ćŖćŒć‚Šć¾ć›ć‚“ć€‚ ć“ć‚Œć«åÆ¾ć™ć‚‹č§£ę±ŗē­–ćÆä½•ć§ć—ć‚‡ć†ć‹ļ¼Ÿ

ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć§ćÆćŖć„ć‚‚ć®ć€ć¤ć¾ć‚Šć‚¤ćƒ³ćƒćƒ¼ćƒˆć§ćÆćŖ恄悂恮恫åÆ¾ć—ć¦ć€ć©ć®ć‚ˆć†ć«ē›øåÆ¾ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ć‚’č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć‹ļ¼Ÿ

恝悌ćÆęœ¬å½“ć«ć€ŒNode.jsćØTypeScript恮č³Ŗå•ć‚’ć©ć®ć‚ˆć†ć«ä½æē”Ø恙悋恋怍恧恂悊态Gitter.imć¾ćŸćÆStackOverflow恧ćÆć‚‹ć‹ć«ć‚ˆćå°‹ć­ć‚‰ć‚Œć¾ć™ć€‚

ē§ćÆTypeScriptćŒå¤§å„½ćć§ć™ćŒć€ć“ć‚ŒćÆē‹‚갗恧恙怂

ć‚ć‹ć‚Šć¾ć›ć‚“ć€‚ TSć‚³ćƒ¼ćƒ‰ćƒ™ćƒ¼ć‚¹ć«ć¤ć„ć¦ć»ćØ悓恩ēŸ„悉ćŖćć¦ć‚‚ć€ć“ć‚Œć‚’å®Ÿč£…ć™ć‚‹ć®ćÆé›£ć—ć„ć“ćØ恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØć‚µćƒ¼ćƒćƒ¼ć§å…±ęœ‰ćƒ—ćƒ­ć‚ø悧ć‚Æ惈悒ä½æć„å§‹ć‚ćŸć°ć‹ć‚Šć§ć™...ćŖ恜TSćÆęœ€åˆć«ćƒ‘ć‚¹ę©Ÿčƒ½ć‚’ęē¤ŗć—ć€ćć‚Œć‹ć‚‰å®Ÿéš›ć«ćć‚Œć‚’ä½æē”Øć™ć‚‹ćŸć‚ć«ćƒ•ćƒ¼ćƒ—ć‚’é£›ć³č¶Šćˆć•ć›ć‚‹ć®ć§ć™ć‹ļ¼Ÿ ćŖ恜TSćÆ态ē§ćŒä½œęˆć™ć‚‹ć™ć¹ć¦ć®ćƒ—ćƒ­ć‚ø悧ć‚Æćƒˆć§ćƒćƒ³ćƒ‰ćƒ©ćƒ¼/ćƒ­ćƒ¼ćƒ€ćƒ¼ć‚’ä½æē”Ø恗恟恄ćØęƒ³å®šć™ć‚‹ć®ć§ć™ć‹ļ¼Ÿ ē§ćÆTS悒ä½æē”Øć—ć¦ćƒ—ćƒ­ć‚ø悧ć‚Æ惈悒ē°”ē“ åŒ–ć—ć‚ˆć†ćØć—ć¦ć„ć¾ć™ćŒć€90ļ¼…å®Ÿč£…ć•ć‚ŒćŸTSę©Ÿčƒ½ć‚’č£œć†ćŸć‚ć«ćƒ„ćƒ¼ćƒ«ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖć‚’å¢—ć‚„ć™ć®ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

ä»°ć‚‹ćØ恊悊恧恙怂 TSćÆćƒ•ćƒ­ćƒ³ćƒˆć‚Øćƒ³ćƒ‰ē”Ø恫開ē™ŗ恕悌恟ćØę€ć„ć¾ć™ć€‚
恙恧恫tsć‚Ø悤ćƒŖć‚¢ć‚¹ćƒ‘ć‚¹ć‚’éžåøøć«ć†ć¾ćå®Ÿč£…ć—ć¦ćŠć‚Šć€Requirejs恧ćÆ
åŒć˜ć“ćØ怂 恗恋恗态Nodejs惗惭ć‚ø悧ć‚Æćƒˆć®å “åˆć€ćć‚ŒćÆ非åøøć«å›°é›£ć§ć™ć€‚ :(

El jue怂态9꜈20ę—„ de 2018 02ļ¼š50态Josh [email protected]
escribiĆ³ļ¼š

ć‚ć‹ć‚Šć¾ć›ć‚“ć€‚ TSć‚³ćƒ¼ćƒ‰ćƒ™ćƒ¼ć‚¹ć«ć¤ć„ć¦ć»ćØ悓恩ēŸ„悉ćŖćć¦ć‚‚ć€ć“ć‚ŒćÆ
å®Ÿč£…ć™ć‚‹ć®ćÆé›£ć—ć„ć“ćØ恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ å…±ęœ‰ćƒ—ćƒ­ć‚ø悧ć‚Æ惈悒ä½æć„å§‹ć‚ćŸć°ć‹ć‚Šć§ć™
ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØć‚µćƒ¼ćƒćƒ¼ć§...ćŖ恜TSćÆćƒ‘ć‚¹ę©Ÿčƒ½ć‚’
ćć‚‚ćć‚‚ć€å®Ÿéš›ć«ćć‚Œć‚’ä½æē”Øć™ć‚‹ćŸć‚ć«ćƒ•ćƒ¼ćƒ—ć‚’é£›ć³č¶Šćˆć•ć›ć¾ć™ć‹ļ¼Ÿ 恩恆恗恦
TSćÆć€ć™ć¹ć¦ć®ćƒ—ćƒ­ć‚ø悧ć‚Æćƒˆć§ćƒćƒ³ćƒ‰ćƒ©ćƒ¼/ćƒ­ćƒ¼ćƒ€ćƒ¼ć‚’ä½æē”Ø恗恟恄ćØęƒ³å®šć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ
ä½œć‚‹ļ¼Ÿ TS悒ä½æē”Øć—ć¦ćƒ—ćƒ­ć‚ø悧ć‚Æ惈悒ē°”ē“ åŒ–ć—ć‚ˆć†ćØć—ć¦ć„ć¾ć™ćŒć€ćć‚Œä»„äøŠć®ä½œę„­ćÆć—ć¦ć„ć¾ć›ć‚“ć€‚
90ļ¼…å®Ÿč£…ć•ć‚ŒćŸTSę©Ÿčƒ½ć‚’č£œć†ćŸć‚ć®ćƒ„ćƒ¼ćƒ«ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖ怂

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-423077950 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/ACKT9DD_z4KOHpfwddTomMXujEsza9tQks5uc0jbgaJpZM4J6vZQ
怂

+1ļ¼

webpackćÆć€ćƒ‘ć‚¹ćƒžćƒƒćƒ—ļ¼ˆć¾ćŸćÆbabel-plugin-module-resolverćŖć©ć®ä»–ć®ćƒ„ćƒ¼ćƒ«ļ¼‰ć‚’č§£ę±ŗć™ć‚‹ć®ć«å½¹ē«‹ć¤å “åˆćŒć‚ć‚Šć¾ć™ćŒć€å®£č؀ļ¼ˆ .d.ts ļ¼‰ćÆč§£ę±ŗć§ćć¾ć›ć‚“ć€‚

宣čØ€å†…ć®ć™ć¹ć¦ć®ćƒ‘ć‚¹ćŒč§£ę±ŗ恕悌悋悏恑恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

ć“ć®å•é”Œć«ć‚‚é­é‡ć—ć¾ć—ćŸć€‚ ę”¾å‡ŗć•ć‚ŒćŸć‚³ćƒ¼ćƒ‰ć«ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ćŒå«ć¾ć‚Œć‚‹ć“ćØćÆč«–ē†ēš„ć§ć‚ć‚‹ć‚ˆć†ć«ę€ć‚ć‚Œć¾ć—ćŸć€‚ ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚Ø悤ćƒŖć‚¢ć‚¹ć«é ¼ć‚‹ć€‚ 恟恠恗态Typescript恮+1ćÆ态ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ć“ć®ę©Ÿčƒ½ć‚’ęä¾›ć—ć¾ć™ć€‚

恓悌ćÆć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØ恗恦čæ½åŠ ć™ć‚‹ć ć‘恧ćÆć‚ć‚Šć¾ć›ć‚“ć‹ļ¼Ÿ ę˜Žć‚‰ć‹ć«ćć‚ŒćÆäŗŗ갗恮恂悋ćƒŖć‚Æć‚Øć‚¹ćƒˆć§ć™ć€‚ ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®å‹•ä½œć«ć¤ć„ć¦ä½•ć‚‚ēŸ„悉ćŖć„ć®ć§ć€ćć‚Œć‚’å®Ÿč£…ć™ć‚‹ć®ćÆ非åøø恫ē°”å˜ć§ćÆć‚ć‚Šć¾ć›ć‚“ć‹ļ¼Ÿ TypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć§ē›“ꎄē°”å˜ć«č§£ę±ŗć§ćć‚‹ć®ć«ć€ćŖćœä»–ć®å “ę‰€ć§ćƒ•ćƒ¼ćƒ—ć‚’ć‚øćƒ£ćƒ³ćƒ—ć™ć‚‹ć‚ˆć†ć«å¼·åˆ¶ć™ć‚‹ć®ć§ć—ć‚‡ć†ć‹ć€‚

+1

ts-transformer-importsćØttypescript悒ä½æē”Ø恗恦态ēµ¶åÆ¾ćƒ‘ć‚¹ćƒ™ćƒ¼ć‚¹ć®TypeScriptć‚¤ćƒ³ćƒćƒ¼ćƒˆć‚’ē›øåƾJavascriptćƒ•ć‚”ć‚¤ćƒ«ć«ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć§ćć¾ć™ć€‚

tscć‚’å¼•ćē¶šćä½æē”Øć§ćć‚‹ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ę™‚ć‚½ćƒŖćƒ„ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ä½œęˆć—ć¾ć—ćŸć€‚ https://github.com/joonhocho/tscpaths

Microsoft / TypeScriptļ¼ƒ15479ļ¼ˆć‚³ćƒ”ćƒ³ćƒˆļ¼‰

import {foo} from "@/some/folder/foo"恌恟恏恕悓恂悊态å‡ŗåŠ›ć•ć‚ŒćŸd.tsćƒ•ć‚”ć‚¤ćƒ«ćŒć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’č§£ę±ŗ恗ćŖ恄d.tsćƒ•ć‚”ć‚¤ćƒ«ć‚’vue-cli恧å‡ŗåŠ›ć—ć‚ˆć†ćØ恙悋ćØć€ć“ć®å•é”ŒćŒē™ŗē”Ÿć—ć¾ć—ćŸć€‚

ć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć‚„ä»–ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć‚’äø€čˆ¬ēš„ć«ę¤œē“¢ć—恦čŖæć¹ć‚‹ćØć€ćƒ‹ćƒ¼ć‚øćƒ£ćƒ¼ć‚Æć®ååæœćÆ怌恓悌ćÆTSćŒč§£ę±ŗć™ć‚‹å•é”Œć§ćÆćŖć„ć€ć‚ˆć†ć«č¦‹ćˆć¾ć™ćŒć€ć‚«ć‚¹ć‚æćƒ ćƒ‘ć‚¹ć‚Ø悤ćƒŖć‚¢ć‚¹ļ¼ˆå®Œå…Øć«ęœ‰åŠ¹ć§č¤‡é›‘ćŖ惗惭ć‚ø悧ć‚Æ惈恫ęŽØå„Øć•ć‚Œć‚‹ć‚¢ćƒ—ćƒ­ćƒ¼ćƒļ¼‰ļ¼ˆć‚«ć‚¹ć‚æćƒ ć®ć‚µćƒ¼ćƒ‰ćƒ‘ćƒ¼ćƒ†ć‚£ćƒ“ćƒ«ćƒ‰ćƒ—ćƒ­ć‚»ć‚¹ćŖ恗恧ļ¼‰d.tsćƒ•ć‚”ć‚¤ćƒ«ć®ē”Ÿęˆć‚’ä½æē”Ø恙悋恓ćØćÆ恧恍ćŖ恄恟悁态typescriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćÆ宣čØ€ćƒ•ć‚”ć‚¤ćƒ«ćƒ—ćƒ­ć‚»ć‚¹ć§ć‚‚ć“ć‚Œć‚‰ć®ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’č§£ę±ŗ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ä»•äŗ‹ćÆ态typescriptćƒ•ć‚”ć‚¤ćƒ«ć®ęœ‰åŠ¹ćŖjavascriptćŠć‚ˆć³d.tsćƒ•ć‚”ć‚¤ćƒ«ć‚’å‡ŗåŠ›ć™ć‚‹ć“ćØć§ć‚ć‚Šć€ć“ć®ęœ‰åŠ¹ćŖć‚·ćƒŠćƒŖć‚Ŗ恧ćÆę©Ÿčƒ½ć—ć¾ć›ć‚“ļ¼ˆtsconfigćƒ•ć‚”ć‚¤ćƒ«ć®ćƒ‘ć‚¹ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Øļ¼‰ć€‚

ē§ćÆć“ć®å•é”Œć«ć¤ć„ć¦å°‘ć—ę··ä¹±ć—ć¦ć„ć¾ć™ć€‚ é–‰ć˜ć‚‰ć‚Œć€ć€Œę„å›³ć—ćŸćØćŠć‚Šć«ę©Ÿčƒ½ć™ć‚‹ć€ćØć„ć†ćƒ©ćƒ™ćƒ«ćŒä»˜ć‘ć‚‰ć‚Œć¦ć„ć¾ć™ć€‚ Typescript恌ē„”効ćŖć‚½ćƒ¼ć‚¹ć‚’å‡ŗåŠ›ć™ć‚‹ć“ćØć‚’ę„å›³ć—ć¦ć„ć‚‹ć“ćØ悒ē†č§£ć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ å„‡å¦™ć«ę€ćˆć¾ć™ć€‚

乞食ćÆéøꊞ者恫ćÆćŖć‚Œć¾ć›ć‚“ćŒć€Typescript悒ä½æē”Ø恙悋ćØć€ćƒćƒ‹ćƒ©JSć®å¤šćć®č‹›ē«‹ćŸć—ć„å“é¢ć‚’å›žéæ恧恍态ē›øåƾēš„ćŖć‚¤ćƒ³ćƒćƒ¼ćƒˆļ¼ˆ'../../../../../utils/parser'ļ¼‰ć‚’ćć®1恤ćØć—ć¦ę•°ćˆć¾ć™ć€‚ Typescript恌恓悌悉悒ć‚ÆćƒŖćƒ¼ćƒ³ć‚¢ćƒƒćƒ—ć§ććŸć‚‰ē“ ę™“悉恗恄恧恗悇恆ļ¼

@codeitcodyćć‚Œć®ć‚ˆć†ć§ć™ć€‚ ć‚µćƒ¼ćƒ‰ćƒ‘ćƒ¼ćƒ†ć‚£ć®ćƒ‘ćƒƒć‚±ćƒ¼ć‚ø恌ćŖ恄ćØę©Ÿčƒ½ć—ćŖ恄悂恮悒å‡ŗåŠ›ć™ć‚‹ć®ćÆ馬é¹æć’ć¦ć„ć¾ć™ćŒć€ćć‚ŒćŒē¾å®Ÿć§ć™ć€‚

ć•ć¦ć€ć“ć‚ŒćÆ附悋恮恫č‰Æć„å•é”Œć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

ćƒ•ćƒ¼ćƒ—ć‚’é£›ć³č¶Šćˆćšć«ć‚¢ćƒ—ćƒŖć‚’ęœ¬č³Ŗēš„恫ä½æē”Ø恧恍ćŖćć™ć‚‹ę©Ÿčƒ½ćŒć‚ć‚‹ć“ćØćÆ非åøøć«é€†åŠ¹ęžœć®ć‚ˆć†ć§ć™ļ¼ˆć¤ć¾ć‚Šć€å•é”Œć‚’回éæć™ć‚‹ćŸć‚ć«ć‚ˆć‚Šå¤šćć®ä¾å­˜é–¢äæ‚ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ļ¼‰ć€‚

ć“ć®å•é”ŒćÆ2å¹“å‰ć‹ć‚‰ć‚ć‚Šć€å®Ÿč£…ć•ć‚Œć‚‹ć‹ć©ć†ć‹ć«ć¤ć„ć¦ć®å…¬å¼ć®čØ€č‘‰ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

恓悌恌åæ…要恧恂悊态Node.js惗惭ć‚ø悧ć‚Æ惈恧TypeScriptć®ęœ€é«˜ć®ę©Ÿčƒ½ć®1恤悒ä½æē”Øć™ć‚‹ćŸć‚ć®åŸŗęœ¬ēš„ćŖę©Ÿčƒ½ć‚’č€ƒćˆć‚‹ćØć€ćć‚ŒćŒć©ć®ć‚ˆć†ć«ę‰±ć‚ć‚Œć‚‹ć‹ćÆ恋ćŖć‚Šć²ć©ć„ć‚‚ć®ć§ć™ć€‚

@mhegazy恂ćŖćŸć‚„ä»–ć®čŖ°ć‹ćŒć€2å¹“å¾Œć®ä»Šć€TypeScriptćƒćƒ¼ćƒ ćŒć“ć‚Œć‚’ć‚‚ć†äø€åŗ¦č¦‹ć¦ć€å†č€ƒć™ć‚‹åÆčƒ½ę€§ćŒć‚ć‚‹ć‹ć©ć†ć‹ć‚’ēŸ„ć‚‰ć›ć¦ćć‚Œć¾ć›ć‚“ć‹ļ¼Ÿ

webpackćÆć€ćƒ‘ć‚¹ćƒžćƒƒćƒ—ļ¼ˆć¾ćŸćÆbabel-plugin-module-resolverćŖć©ć®ä»–ć®ćƒ„ćƒ¼ćƒ«ļ¼‰ć‚’č§£ę±ŗć™ć‚‹ć®ć«å½¹ē«‹ć¤å “åˆćŒć‚ć‚Šć¾ć™ćŒć€å®£č؀ļ¼ˆ .d.ts ļ¼‰ćÆč§£ę±ŗć§ćć¾ć›ć‚“ć€‚

宣čØ€å†…ć®ć™ć¹ć¦ć®ćƒ‘ć‚¹ćŒč§£ę±ŗ恕悌悋悏恑恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

ć“ć‚Œć‚’é”ęˆć™ć‚‹ę–¹ę³•ćÆć‚ć‚Šć¾ć™ć‹ļ¼Ÿ ć‚«ć‚¹ć‚æ惠Reactć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆćƒ©ć‚¤ćƒ–ćƒ©ćƒŖ恌恂悊态ć‚Ø悤ćƒŖć‚¢ć‚¹ć«paths悒ä½æē”Ø恗悈恆ćØ恙悋ćØ态恓恮ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć—ć¾ć—ćŸć€‚ ćƒ­ćƒ¼ćƒ«ć‚¢ćƒƒćƒ—ä»˜ćć®2ć¤ć®ćƒćƒ³ćƒ‰ćƒ«ćØ态 --emitDeclarationOnlyä»˜ćć®ć‚æć‚¤ćƒ—ć‚’å®Ÿč”Œć—ć¾ć™

ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚Ø悤ćƒŖć‚¢ć‚¹ćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚ę¬”ć®ć‚ˆć†ć«ćŖć£ć¦ć„ć‚‹ćŸć‚ć§ć™ć€‚

č­¦å‘Šļ¼šć“ć®ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćÆć€ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć®requireå‹•ä½œć‚’å¤‰ę›“ć™ć‚‹ćŸć‚ć€ä»–ć®npmćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć§ćÆä½æē”Ø恗ćŖ恄恧恏恠恕恄怂

Reddit恧恓恮ꊕēØæć«č³›ęˆć™ć‚‹ć®ć‚’ę‰‹ä¼ć£ć¦ćć ć•ć„ļ¼š https ļ¼š//www.reddit.com/r/typescript/comments/a07jlr/path_maps_cannot_be_resolved_by_tsc_works_as/
恓恓恧恓恮å·Ø大ćŖč­°č«–ćŒåæ…要ćŖē†ē”±ćŒć‚ć‹ć‚Šć¾ć›ć‚“怂 ć“ć®ćƒć‚°ćÆē°”å˜ć«č§£ę±ŗ恧恍悋ćÆ恚恧恙怂 tsconfig恮ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØčŖ°ć‚‚ćŒć€å½¼ćŒē¾åœØć®å‹•ä½œļ¼ˆä½•ć‚‰ć‹ć®ē†ē”±ć§ļ¼‰ćŖć®ć‹ć€ćć‚ŒćØć‚‚å®Ÿē”Øēš„ćŖć‚¢ćƒ—ćƒ­ćƒ¼ćƒćŖ恮恋悒ę±ŗ悁悋恓ćØćŒć§ćć¾ć™ć€‚

Dropboxć§ć‚‚åŒć˜å•é”ŒćŒē™ŗē”Ÿć—ć€ć“ć®ćƒˆćƒ©ćƒ³ć‚¹ćƒ•ć‚©ćƒ¼ćƒžćƒ¼ć‚’ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹åŒ–ć—ć¾ć—ćŸhttps://github.com/dropbox/ts-transform-import-path-rewrite

åŒć˜ēµŒéØ“ć‚’ä½•åŗ¦ć‚‚ēµŒéØ“ć—ć¾ć—ćŸć€‚ćƒ‘ć‚¹ć‚Ø悤ćƒŖć‚¢ć‚¹ćŒč§£ę±ŗ恕悌悋恓ćØć‚’ęœŸå¾…ć—ć¦ć„ć¾ć™ćŒć€module-aliasć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć€package.jsonć‚’ę›“ę–°ć—ć¦ć€ćƒ”ć‚¤ćƒ³ćƒ•ć‚”ć‚¤ćƒ«ć«ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚‹ć“ćØ悒åæ˜ć‚Œć¦ć„ć¾ć™ć€‚ 恓悌恌Typescriptć«ć‚ˆć‚‹ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć‚¹ćƒ†ćƒƒćƒ—ć§å‡¦ē†ć•ć‚ŒćŸå “合ćÆē“ ę™“悉恗恄恧恗悇恆怂

ē—›ć„怂 恓悌ćÆTypeScript恫ćØć£ć¦å¤§ććŖꉓꒃ恧恙怂 ć“ć‚Œć®ę„å‘³ćÆć©ć“ć«ć‚ć‚Šć¾ć™ć‹ļ¼Ÿ

psć‚³ćƒ”ćƒ³ćƒˆć™ć‚‹ć ć‘ć§ćÆć„ć‘ć¾ć›ć‚“+1

ć‚Æćƒ©ćƒ–@def14ntćø悈恆恓恝怂 ē§ćŸć”ćÆå¤¢ęƒ³å®¶ć®å¹ø恛ćŖć‚°ćƒ«ćƒ¼ćƒ—ć§ć‚ć‚Šć€ć‚ˆć‚Šč‰Æ恄ęœŖę„ć‚’č¦‹ć¤ć‚ćŖ恌悉态TypeScript恌ē§ćŸć”恮ē”Ÿę“»ć‚’ę„½ć«ć™ć‚‹ć‚·ćƒ³ćƒ—ćƒ«ć§č³¢ę˜ŽćŖć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’å®Ÿč£…ć™ć‚‹ę—„ć‚’č¾›ęŠ±å¼·ćå¾…ć£ć¦ć„ć¾ć™ć€‚ ćć®ę—„ćŒć¤ć„ć«ē§ćŸć”恫čæ«ć£ćŸćØćć€å½¼ć‚‰ćŒę–°ć—ćč¦‹ć¤ć‘ćŸēæ¼ć§å¤•ę—„ć«å ‚ć€…ćØé£›ć³åŽ»ć‚‹ćØćć€č±šć®ć‹ć£ć“ć„ć„ćƒ”ćƒ³ć‚Æč‰²ć®ä½“ćŒćŖ恄恋ē©ŗ悒惁悧惃ć‚Æć—ć¦ćć ć•ć„ć€‚

ē¬‘态TypeScriptćƒćƒ¼ćƒ ćŒć‚µćƒćƒ¼ćƒˆć‚’čæ½åŠ ć§ćć‚‹ć‚‚恮恮npmę‹”å¼µę©Ÿčƒ½ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ć€‚ ćŸć¶ć‚“ć€å½¼ć‚‰ćÆć¾ć™ć¾ć™å¤šćć®ę‹”å¼µę©Ÿčƒ½ć‚’čæ½åŠ ć™ć‚‹ć®ć‚’悄悁态恓恮åŸŗęœ¬ēš„ćŖę©Ÿčƒ½ć‚’čæ½åŠ ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

@mika-ćƒ•ć‚£ćƒƒć‚·ćƒ£ćƒ¼
https://www.npmjs.com/package/module-alias悒ä½æē”Ø恗恦态eslint恌怌ęœŖč§£ę±ŗć®ćƒ‘ć‚¹ć€@ root / bla / blaļ¼ˆJSćƒ•ć‚”ć‚¤ćƒ«å†…ļ¼‰ć«ć¤ć„ć¦č­¦å‘Šć™ć‚‹ć‚ˆć†ć«ć™ć‚‹ć«ćÆć©ć†ć™ć‚Œć°ć‚ˆć„ć§ć™ć‹ļ¼Ÿ ćć—ć¦ć€WebStormćØVS Codeć§ćć®ć‚ˆć†ćŖćƒ‘ć‚¹ć®ć‚Ŗćƒ¼ćƒˆć‚³ćƒ³ćƒ—ćƒŖćƒ¼ćƒˆć‚’ęœ‰åŠ¹ć«ć™ć‚‹ę–¹ę³•ćÆļ¼Ÿ

ē§ć®å “åˆć€ć‚¤ćƒ³ćƒćƒ¼ćƒˆć®č‡Ŗ動完äŗ†ćÆ态Typescript惗惭ć‚ø悧ć‚Æćƒˆć®ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§VSCodeć§ę©Ÿčƒ½ć—ć¾ć™ć€‚

@bobmoffćÆ恄态TSćƒ•ć‚”ć‚¤ćƒ«ć‹ć‚‰TSćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹ć®ć«ć™ć¹ć¦ćŒč‰Æ恄悈恆恧恙怂
恟恠恗态TSćƒ•ć‚”ć‚¤ćƒ«ć‹ć‚‰ć® `requireļ¼ˆ'@ root / bla / bla'ļ¼‰ć®ć‚Ŗćƒ¼ćƒˆć‚³ćƒ³ćƒ—ćƒŖćƒ¼ćƒˆćØćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ćÆę©Ÿčƒ½ć—ć¾ć›ć‚“ć€‚

JS惗惭ć‚ø悧ć‚Æ惈悒TSć«å¤‰ę›ć—ćŸć„ć®ć§ć€jsćƒ•ć‚”ć‚¤ćƒ«ć®åå‰ć‚’1恤恚恤tsć«å¤‰ę›“ć§ćć‚‹ćØę€ć„ć¾ć—ćŸć€‚
恓悌ćÆ非åøøć«é›£ć—ćć€ts恧悂IDEć§ć‚‚ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖ恄恓ćØć«ę°—ä»˜ćć¾ć—ćŸć€‚ć™ć¹ć¦ć®jsćƒ•ć‚”ć‚¤ćƒ«ć®åå‰ć‚’äø€åŗ¦ć«tsć«å¤‰ę›“ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

1恤恮JSćƒ•ć‚”ć‚¤ćƒ«ć®åå‰ć‚’TSć«å¤‰ę›“ć™ć‚‹ćØ态 buildćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖå†…ć®ć™ć¹ć¦ć®ē›øåÆ¾ćƒ‘ć‚¹ćŒå£Šć‚ŒćŸćŸć‚ć§ć™ļ¼ˆćŠćć‚‰ćć€ŒallowJsļ¼štrue怍悒ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ćŒć€2ć‚®ć‚¬ćƒć‚¤ćƒˆć®JSćƒ•ć‚”ć‚¤ćƒ«ć‚’å«ć‚€ćƒ—ćƒ­ć‚ø悧ć‚Æ惈恌1ć¤ć‚ć‚Šć¾ć™ć€‚ćć‚Œć‚‰ć‚’ćƒ“ćƒ«ćƒ‰ćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖć«ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć™ć‚‹ć®ćÆå„‡å¦™ć§ć™ļ¼…ļ¼‰ļ¼‰ć€‚
ć‚ć‹ć‚Šć¾ć—ćŸć€‚ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚Ø悤ćƒŖć‚¢ć‚¹ć§ć“ć‚Œć‚’č§£ę±ŗ恗悈恆ćØ恙悋ćØ态IDEć®ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ćØć‚Ŗćƒ¼ćƒˆć‚³ćƒ³ćƒ—ćƒŖćƒ¼ćƒˆćŒę©Ÿčƒ½ć—ćŖ恏ćŖ悊态eslintćÆē“„100500ć®ć€ŒęœŖč§£ę±ŗć®ćƒ‘ć‚¹ć€ć‚’č­¦å‘Šć—ć¾ć™ć€‚ ē§ćÆ恙恧恫TSćŒå°‘ć—å«Œć„ć§ć™ć€‚å¤§č¦ęØ”ćŖJS惗惭ć‚ø悧ć‚Æ惈ćø恮ē§»č”ŒćÆ态TSćƒžćƒ¼ć‚±ćƒ†ć‚£ćƒ³ć‚°ę‹…å½“č€…ćŒčØ€ć†ć»ć©ē°”å˜ć§ćÆćŖ恄悈恆恧恙怂 JS惐惃ć‚Æć‚Øćƒ³ćƒ‰ćƒ—ćƒ­ć‚ø悧ć‚Æ惈恮golangćø恮ē§»č”ŒćÆć‚‚ć£ćØē°”単ćŖ悈恆恧恙:)

回éæē­–ćØ恗恦tscpathsć‚’ę­£åøø恫ä½æē”Øć—ć¦ć„ć¾ć™ć€‚

ē§ć‚‚怂 ē§ćÆęœ¬å½“ć«tscpathsć‚’ćŠå‹§ć‚ć—ć¾ć™ć€‚ ęƒ³å®šć©ćŠć‚Šć«å‹•ä½œć—ć¾ć™ć€‚

ē§ć®ē°”単ćŖ回éæē­–ļ¼š

node -r ts-node/register/transpile-only -r tsconfig-paths/register index.js

ć¾ćŸćÆpm2process.yml悒ä½æē”Ø

apps:
  - name: 'my-app'
    script: './dist/index.js'
    instances: 'max'
    exec_mode: 'cluster'
    out_file : '/dev/null'
    error_file : '/dev/null'
    node_args: ['--require=ts-node/register/transpile-only', '--require=tsconfig-paths/register']
    env_production:
      NODE_ENV: production

ć“ć‚Œć«å¶ē„¶å‡ŗ恏悏恗恟恠恑恧态TypeScriptćŒćŠå°»ć«ęœ¬å½“ć«č‹¦ē—›ć‚’äøŽćˆć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚

ćŖćœć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ćŒä½•åŗ¦ć‚‚ē¹°ć‚Ščæ”ć•ć‚Œć‚‹ć®ć‹ć€ē§ćÆēœŸå‰£ć«ē†č§£ć—ć¦ć„ć¾ć›ć‚“ć€‚
ē§ćŸć”ćÆēš†ć€ć€Œćƒ‘ć‚¹åœ°ē„ć€ć«ć¤ć„ć¦ēŸ„ć£ć¦ć„ć¾ć™ć€ćć—ć¦ć‚ćŖ恟ćÆļ¼ˆć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Ø恙悋恓ćØć«ć‚ˆć£ć¦ļ¼‰ć§ćć‚‹ć“ćØ悒ēŸ„ć£ć¦ć„ć¾ć™
ęœ¬å½“ć«ćć‚Œć„
ćć®ę··ä¹±ć¾ć§ć€ć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć®čŖ°ć‚‚ćŒć“ć‚Œć‚’ēŸ„ć£ć¦ć„ć¾ć™ļ¼

ć‚Ø悤ćƒŖć‚¢ć‚¹ćÆTypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«ć‚ˆć£ć¦č§£é‡ˆć•ć‚Œć€ę­£ē¢ŗć«ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć•ć‚Œć¾ć™
当ē„¶ć®ć“ćØćŖ恌悉态
ēµęžœćØć—ć¦å¾—ć‚‰ć‚Œć‚‹javascriptć‚’ć„ć˜ćć‚Šå›žć—ć¦ćÆć„ć‘ć¾ć›ć‚“ć€‚
ä½æ恄恟恄
ć‚Ø悤ćƒŖć‚¢ć‚¹ćÆč‡Ŗåˆ†ć§č§£ę±ŗ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ļ¼

....ć¾ćŸćÆApple态Google态Microsoftć§ć‚¹ćƒ¬ćƒƒćƒ‰ć‚’é–‹å§‹ć—ć¾ć™
JavaScriptć‚Øćƒ³ć‚øćƒ³ć«ę©Ÿčƒ½ć‚’å®Ÿč£…ć—ć¦ć€
å½¼ć‚‰ćÆć§ćć¾ć™
ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ć‚¤ćƒ³ć‚æćƒ¼ćƒšćƒƒćƒˆć™ć‚‹;-)

TypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćÆć€ęœ¬ę„ć®ę©Ÿčƒ½ć‚’ę­£ē¢ŗć«å®Ÿč”Œć—ć¾ć™ć€‚

Angular恮äø–ē•Œć§ä½œę„­ć—ć¦ć„ć‚‹å “合ćÆ态道č·ÆćŒčˆ—č£…ć•ć‚Œć¦ć„ć¾ć™ć€‚
恂ćŖćŸć‚’å®Ÿč”Œć—ć¾ć™
ćƒŽćƒ¼ćƒ‰ć§ē›“ęŽ„ć‚³ćƒ¼ćƒ‰ć‚’ä½œęˆć™ć‚‹ć«ćÆć€ćƒ‘ć‚¹ć‚’č§£ę±ŗć™ć‚‹ćŸć‚ć®ćƒ„ćƒ¼ćƒ«ćŒåæ…要恧恙怂
č£½
恂ćŖćŸć ć‘ć®ćŸć‚ć®ćć®ć‚ˆć†ćŖćƒ„ćƒ¼ćƒ«ć€ćć‚ŒćÆ1幓仄äøŠć®é–“ē”Ÿē”£ć§ä½æē”Øć•ć‚Œć¾ć—ćŸć€
恝悌ćÆ
ć“ć“ć‚¹ć‚¦ć‚§ćƒ¼ćƒ‡ćƒ³ęœ€å¤§ć®ę–°čžć§ä½æć‚ć‚Œć¦ć„ć‚‹ć®ć§ć€
č£ø恫ćŖ悋
ćƒŽćƒ¼ćƒ‰ć®éŖØ态ē§ćÆć“ć“ć§ä½•ć‚‚å£²ć‚ć†ćØćÆć—ć¦ć„ć¾ć›ć‚“ć€ē§ćÆ恊金悒ēØ¼ć„ć§ć„ć¾ć›ć‚“
恓悌恋悉 ļ¼šļ¼‰

ćÆ恄态怌tsmodule-aliasć€ć‚„åŒę§˜ć®ćƒćƒƒć‚ÆćŖć©ć®ćƒ„ćƒ¼ćƒ«ćŒć‚ć‚Šć¾ć™ć€‚
å®Ÿéš›ć«ćć‚Œć‚’ę©Ÿčƒ½ć•ć›ć‚‹
恂ćŖ恟恌非åøø恫ę³Øę„ć—ć¦ć„ć‚‹ćŒć€ćć‚ŒćŒę··ä¹±ć—ć¦ć„ć‚‹å “åˆćÆ态悒ä½æē”Øć—ć¦å›žéæē­–ćŒć‚ć‚Šć¾ć™
ts-ćƒŽćƒ¼ćƒ‰ć€
ć‚·ć‚§ćƒ«ć‚¹ć‚ÆćƒŖ惗惈ćŖ恩...yaddayadda

ć‚„ć£ćØååˆ†ć ćØę„Ÿć˜ćŸć®ć§ć€č‡Ŗåˆ†ć‚’é–‰ć˜č¾¼ć‚ć¦ä½œć‚Šć¾ć—ćŸ
TsPath
ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ę™‚ć®ć‚Ø悤ćƒŖć‚¢ć‚¹

> npm install -g tspatj

myproject> tsc

myproject> tspath

ć¾ćŸ

myproject> tspath --f

ćƒ˜ćƒƒćƒ‰ćƒ¬ć‚¹ļ¼ˆćƒ“ćƒ«ćƒ‰ć‚µćƒ¼ćƒćƒ¼ć§éžåøø恫ä¾æåˆ©ć§ć‚ć‚‹ć“ćØ恌čØ¼ę˜Žć•ć‚Œć¦ć„ć¾ć™ļ¼‰

ć“ć‚Œć§å®Œäŗ†ć§ć™ć€‚JavaScriptćƒ•ć‚”ć‚¤ćƒ«ć«ćÆ
ę­£ć—ć„ē›øåÆ¾ćƒ‘ć‚¹ć€ćć‚ŒćÆē§ćŸć”恌恓恓恧ꜛ悓恧恄悋恓ćØ恧ćÆć‚ć‚Šć¾ć›ć‚“ć‹ļ¼Ÿ

ä¹¾ęÆļ¼ :)

https://www.npmjs.com/package/tspath

Densƶn1꜈13ꗄ怂 2019 kl 22:20 skrev Fabio Spampinato <
[email protected]>ļ¼š

ć“ć‚Œć«å¶ē„¶å‡ŗ恏悏恗恟恠恑恧态TypeScriptćŒęœ¬å½“ć«č‹¦ē—›ć«ćŖ悋恓ćØćŒć‚ć‚Šć¾ć™
ćŠå°»ć€‚

ā€”
ć‚³ćƒ”ćƒ³ćƒˆć—ćŸć®ć§ć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-453866553 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/AAAy_7JYrwYo3KOLxpLWP0np5JVz2kQzks5vC6MogaJpZM4J6vZQ
怂

@duffman

ć‚Ø悤ćƒŖć‚¢ć‚¹ćÆTypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«ć‚ˆć£ć¦č§£é‡ˆć•ć‚Œć€ę­£ē¢ŗć«ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć•ć‚Œć¾ć™
当ē„¶ć®ć“ćØćŖ恌悉态ēµęžœćØć—ć¦å¾—ć‚‰ć‚Œć‚‹javascriptć‚’ć„ć˜ćć‚Šå›žć—ć¦ćÆć„ć‘ć¾ć›ć‚“ć€‚
ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Øć—ćŸć„å “åˆćÆ态恓悌悒č‡Ŗåˆ†ć§č§£ę±ŗ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ć¾ć£ćŸććć†ę€ć‚ćŖ恄怂 恂ćŖćŸćŒå†—č«‡ć‚’čØ€ć£ć¦ć„ćŖ恄限悊态ē§ćÆęœ¬å½“ć«čØ€ć†ć“ćØćŒć§ćć¾ć›ć‚“ć§ć—ćŸć€‚

TypeScriptćÆć€ćƒć‚¤ćƒ†ć‚£ćƒ–ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«éƒØ分ēš„ć«ć—ć‹å®Ÿč£…ć•ć‚Œć¦ć„ćŖ恄ć‚øćƒ§ćƒ–ć‚’å®Œäŗ†ć™ć‚‹ćŸć‚ć«ć€ć‚µćƒ¼ćƒ‰ćƒ‘ćƒ¼ćƒ†ć‚£ć®ćƒ„ćƒ¼ćƒ«ć‚’åæ…要ćØ恛恚恫_å‹•ä½œć™ć‚‹_ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

TypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćÆć€ęœ¬ę„ć®ę©Ÿčƒ½ć‚’ę­£ē¢ŗć«å®Ÿč”Œć—ć¾ć™ć€‚

ć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ćŒtsc悂ēø®å°åŒ–ćŖć©ć‚’č”Œć†ć‚ˆć†ć«č¦ę±‚ć™ć‚‹äŗŗć€…ć§ć„ć£ć±ć„ć ć£ćŸå “åˆć€ē§ćÆ恂ćŖćŸć«åŒę„ć—ć¾ć™ć€‚ 恗恋恗态恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒå®Ÿč”ŒåÆčƒ½ć‚³ćƒ¼ćƒ‰ć‚’ē”Ÿęˆć™ć‚‹ć‚ˆć†ć«č¦ę±‚恙悋恮ćÆäŗŗ怅恧恙怂 ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ć«čžćć®ćÆ恝悓ćŖć«å¤šććŖ恄ćØę€ć„ć¾ć™ć‚ˆć­ļ¼Ÿ

ć¾ćŸć€ę¬”ć®ć‚ˆć†ćŖę©Ÿčƒ½ć‚’ä½æē”Ø恗ćŖć„å “åˆćÆć€å®Ÿč”ŒåÆčƒ½ć‚³ćƒ¼ćƒ‰ćŒē”Ÿęˆć•ć‚Œć¾ć™ć€‚
JavaScriptć‚Øćƒ³ć‚øćƒ³ć§ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖć„ć®ć§ć€ćć‚ŒćÆ非åøø恫ē†ć«ć‹ćŖć£ć¦ć„ć‚‹ćÆ恚恧恙
恟ćØćˆć°ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒC ++ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ć›ć„ć«ćŖć‚Šć¾ć™ć‹ļ¼Ÿ
惀悤惊惟惃ć‚ÆćƒŖćƒ³ć‚Æćƒ©ć‚¤ćƒ–ćƒ©ćƒŖ悒ä½æē”Øć—ć€ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćŒćƒžć‚·ćƒ³äøŠć§å®Ÿč”Œć•ć‚ŒćŖ恄恓ćØ
ć“ć‚Œć‚‰ćŒć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¦ć„ć¾ć›ć‚“ć‹ļ¼Ÿ

恓悌ćÆ态ē›øåÆ¾ćƒ‘ć‚¹ć‚’ē®”ē†ć™ć‚‹å “åˆć«åˆ©ē”Øć§ćć‚‹ę©Ÿčƒ½ć§ć™ć€‚
Angular恌WebPackć§č”Œć†ć‚ˆć†ć«ć€ć¾ćŸćÆē§ćŒč”Œć†ć‚ˆć†ć«ć€ćć‚Œć‚‰ć®č²¬ä»»ć‚’č² ć„ć¾ć™
TSPath悒ä½æē”Øć—ćŸć™ć¹ć¦ć®TypeScript惗惭ć‚ø悧ć‚Æ惈ļ¼

ä½œę„­ē’°å¢ƒć®čØ­å®šę–¹ę³•ćŒć‚ć‹ć‚‰ćŖć„å “åˆćÆ态ä½æē”Ø恗ćŖ恄恧恏恠恕恄怂
ē§ćÆć“ć‚ŒćŒć“ć“ć§ć®ćƒžć‚¤ć‚Æćƒ­ć‚½ćƒ•ćƒˆć®č²¬ä»»ć ćØćÆęœ¬å½“ć«ę€ć„ć¾ć›ć‚“ć€å½¼ć‚‰ćÆ
ę©Ÿčƒ½ć‚’ęä¾›ć—ć€ćć‚ŒćŒć©ć®ć‚ˆć†ć«ę©Ÿčƒ½ć™ć‚‹ć‹ć‚’ę¬”ć«ē¤ŗć—ć¾ć™ć€‚
恝悌ćÆ恂ćŖćŸćŒęœ›ć‚€ć‚ˆć†ć«ć€ć¾ćŸćÆćć‚ŒćŒę©Ÿčƒ½ć™ć‚‹ć“ćØć‚’ęœŸå¾…ć™ć‚‹ć‚ˆć†ć«ę©Ÿčƒ½ć—ćŖć„ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ćŒć€ćć‚ŒćÆć—ć¾ć›ć‚“
恝悌ćÆé–“é•ć£ć¦ć„ć¾ć™ļ¼

ć¾ćŸć€ē§ćÆčˆˆå‘³ćŒć‚ć‚Šć¾ć™ć€ć‚ćŖ恟ćÆ恓悌恌恂ćŖ恟悒é‚Ŗ魔恕恛恦恄悋恮恧恙恋ļ¼Ÿ
TypeScript悒ä½æē”Ø恗恦開ē™ŗć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ

DenmĆ„n1꜈14ꗄ怂 2019 kl 21:34 skrev Robert [email protected] ļ¼š

TypeScriptć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćÆć€ęœ¬ę„ć®ę©Ÿčƒ½ć‚’ę­£ē¢ŗć«å®Ÿč”Œć—ć¾ć™ć€‚

ć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ćŒtscć‚‚č”Œć†ć“ćØ悒要걂恙悋äŗŗć€…ć§ć„ć£ć±ć„ć ć£ćŸå “åˆ
ēø®å°åŒ–ćŖ恩态ē§ćÆ恂ćŖćŸć«åŒę„ć—ć¾ć™ć€‚ 恗恋恗态恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ 恓悌ćÆ
ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒå®Ÿč”ŒåÆčƒ½ć‚³ćƒ¼ćƒ‰ć‚’ē”Ÿęˆć™ć‚‹ć“ćØ悒要걂恙悋äŗŗ怅怂 ē§ćÆęœ¬å½“ć«
ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ć«čžćć®ćÆå¤šć™ćŽć‚‹ćØćÆę€ć„ć¾ć›ć‚“ć‹ļ¼Ÿ

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454151277 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/AAAy_7FeuOJAnI9bXYSVgf_YghJluTyGks5vDOnEgaJpZM4J6vZQ
怂

恓悌ćÆ态ē›øåÆ¾ćƒ‘ć‚¹ć‚’ē®”ē†ć—态Angular恌WebPackć§č”Œć†ć‚ˆć†ć«ć€ć¾ćŸćÆTSPath悒ä½æē”Øć™ć‚‹ć™ć¹ć¦ć®TypeScript惗惭ć‚ø悧ć‚Æćƒˆć§č”Œć†ć‚ˆć†ć«ć€ē›øåÆ¾ćƒ‘ć‚¹ć‚’ē®”ē†ć™ć‚‹å “åˆć«åˆ©ē”Øć§ćć‚‹ę©Ÿčƒ½ć§ć™ć€‚

恓悌ćÆć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒå£Šć‚ŒćŸć‚³ćƒ¼ćƒ‰ć‚’å‡ŗåŠ›ć™ć‚‹ę©Ÿčƒ½ć§ć™ć€‚ć“ć‚Œć‚‰ć®ćƒ‘ć‚¹ć‚’é©åˆ‡ć«č§£ę±ŗć™ć‚‹ćŸć‚ć«1č”Œć®ć‚³ćƒ¼ćƒ‰ć‚’čؘčæ°ć—ćŸć ć‘ć§ę©Ÿčƒ½ć™ć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹ć‚³ćƒ¼ćƒ‰ć§ć™ć€‚

å‡ŗåŠ›ć•ć‚ŒćŸć‚³ćƒ¼ćƒ‰ć‚’å®Ÿč”Œć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹ćŸć‚ć ć‘ć«TSćŒå¤–éƒØćƒćƒ³ćƒ‰ćƒ©ćƒ¼ć‚’åæ…要ćØ恙悋ćØ恄恆äŗ‹å®ŸćÆć€ę˜Žć‚‰ć‹ć«ć°ć‹ć’ć¦ć„ć¾ć™ć€‚

ć¾ćŸć€ę¬”ć®ć‚ˆć†ćŖę©Ÿčƒ½ć‚’ä½æē”Ø恗ćŖć„å “åˆćÆć€å®Ÿč”ŒåÆčƒ½ć‚³ćƒ¼ćƒ‰ćŒē”Ÿęˆć•ć‚Œć¾ć™ć€‚
JavaScriptć‚Øćƒ³ć‚øćƒ³ć§ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖ恄态

TypeScriptćÆJavaScriptć«ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć•ć‚Œć‚‹ć“ćØ恫ćŖć£ć¦ć„ć‚‹ć“ćØ悒ē§ćÆ恄恤悂ē†č§£ć—ć¦ć„ć¾ć—ćŸć€‚ ē‰¹å®šć®ę©Ÿčƒ½ćŒJavaScriptć‚Øćƒ³ć‚øćƒ³ć§ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖ恄恓ćØ悒ē§ć«čØ€ć£ć¦ć„ć‚‹ć®ćŖ悉态ćŖćœćć‚Œć‚‰ćŒę­£ē¢ŗć«ćć“ć«ć‚ć‚‹ć®ć§ć™ć‹ļ¼Ÿ

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ€ć‚¤ćƒŠćƒŸćƒƒć‚ÆćƒŖćƒ³ć‚Æćƒ©ć‚¤ćƒ–ćƒ©ćƒŖćŒć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¦ć„ćŖć„ćƒžć‚·ćƒ³ć§ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćŒå®Ÿč”Œć•ć‚ŒćŖć„å “åˆć€C ++ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ć›ć„ć«ćŖć‚Šć¾ć™ć‹ļ¼Ÿ

ć„ć„ćˆć€‚ćŸć ć—ć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ć‚Øćƒ©ćƒ¼ć‚„č­¦å‘ŠćŖć—ć«ć€å®Ÿéš›ć«ćÆ存åœØ恗ćŖć‹ć£ćŸä»–ć®C++ć‚³ćƒ¼ćƒ‰ć«ćƒŖćƒ³ć‚Æć§ćć‚‹å “åˆćÆč²¬ä»»ć‚’č² ć„ć¾ć™ć€‚

恂ćŖ恟ćÆęœ¬å½“ć«ć“ć‚Œć‚’ē†č§£ć—ć¦ć„ć¾ć›ć‚“ć­ļ¼Ÿ ćć‚ŒćŒć‚ć‚Œć°ć€ć‚³ćƒ¼ćƒ‰ćÆå£Šć‚Œć¦ć„ć¾ć›ć‚“
å£Šć‚ŒćŸć®ćÆć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć‚’ę§‹ęˆć—ćŸćŸć‚ć§ć™
ć“ć®å “åˆć€ć€Œćƒ—ćƒ©ćƒƒćƒˆćƒ•ć‚©ćƒ¼ćƒ ć€ćŒć‚µćƒćƒ¼ćƒˆć—ć¦ć„ćŖć„ć‚³ćƒ¼ćƒ‰ć‚’ē”Ÿęˆć™ć‚‹ć«ćÆ态
ć‚Ø悤ćƒŖć‚¢ć‚¹ļ¼

恂ćŖćŸć®å “åˆć€ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Ø恗ćŖ恄恧恏恠恕恄怂怌恂ćŖ恟怍ćÆć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ēœŸå‰£ć«ć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć›ć‚“ć€‚

恓悌恌1č”Œć®äæ®ę­£ć§ć‚ć£ć¦ć‚‚ļ¼ˆć‚‚恔悍悓恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“ļ¼‰ć€
ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒä½•ć‚’ć™ć¹ćć‹ć€ćć—ć¦
ć™ć¹ćć§ćÆć‚ć‚Šć¾ć›ć‚“ļ¼ ć“ć®ę©Ÿčƒ½ćÆć€ćƒ­ćƒ¼ćƒ€ćƒ¼ć‚’ć‚µćƒćƒ¼ćƒˆć—ćŖć„ćŸć‚ć«čæ½åŠ ć•ć‚Œć¾ć—ćŸć€‚
逆恫态čŖ­ć‚“ć§ćć ć•ć„
å…¬å¼ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ć«ć¤ć„ć¦ćÆ态ē¹°ć‚Ščæ”恗恫ćŖć‚Šć¾ć™ćŒć€ć“ć‚Œć‚’ä½æē”Øć—ć¦ć„ć¾ć™
違恆ļ¼

ē¹°ć‚Ščæ”ć—ć¾ć™ćŒć€ć“ć®ę©Ÿčƒ½ćÆćƒ­ćƒ¼ćƒ€ćƒ¼/ćƒŖć‚¾ćƒ«ćƒćƒ¼ē”Ø恧恙态恂ćŖ恟ćÆćć‚ŒćŒć©ć®ć‚ˆć†ć«čŖ¤č§£ć•ć‚Œć¦ć„ć¾ć™ć‹
å‹•ä½œć™ć‚‹ć®ć§ć€ć„ć„ćˆć€ćƒžć‚¤ć‚Æćƒ­ć‚½ćƒ•ćƒˆ
ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć‚’å¤‰ę›“ć—ć¦ć€ć‚Ø悤ćƒŖć‚¢ć‚¹ćŖ恗恧ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’č²¼ć‚Šä»˜ć‘ć‚‹ć“ćØćŒć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™
ćć‚Œć‚’ć‚µćƒćƒ¼ćƒˆć™ć‚‹ē’°å¢ƒļ¼

ćƒ‡ćƒ³ćƒ†ć‚£ć‚¹1꜈15ꗄ怂 2019 kl 04:41 skrev Fabio Spampinato <
[email protected]>ļ¼š

恓悌ćÆ态ē›øåÆ¾ćƒ‘ć‚¹ć‚’ē®”ē†ć™ć‚‹å “åˆć«åˆ©ē”Øć§ćć‚‹ę©Ÿčƒ½ć§ć™ć€‚
Angular恌WebPackć§č”Œć†ć‚ˆć†ć«ć€ć¾ćŸćÆē§ćŒč”Œć†ć‚ˆć†ć«ć€ćć‚Œć‚‰ć®č²¬ä»»ć‚’č² ć„ć¾ć™
TSPath悒ä½æē”Øć—ćŸć™ć¹ć¦ć®TypeScript惗惭ć‚ø悧ć‚Æ惈ļ¼

恓悌ćÆć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒå£Šć‚ŒćŸć‚³ćƒ¼ćƒ‰ć‚’å‡ŗåŠ›ć™ć‚‹ć‚ˆć†ć«ć™ć‚‹ę©Ÿčƒ½ć§ć™ć€‚
ćć‚Œć‚‰ć‚’č§£ę±ŗć™ć‚‹ćŸć‚ć«1č”Œć®ć‚³ćƒ¼ćƒ‰ć—ć‹čؘčæ°ć—恦恄ćŖć‘ć‚Œć°ę©Ÿčƒ½ć—ć¦ć„ć‚‹åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™
ćƒ‘ć‚¹ć€‚

TS恌å‡ŗåŠ›ć•ć‚ŒćŸć‚³ćƒ¼ćƒ‰ć®ćŸć‚ć ć‘ć«å¤–éƒØćƒćƒ³ćƒ‰ćƒ©ćƒ¼ć‚’åæ…要ćØ恙悋ćØ恄恆äŗ‹å®Ÿ
å®Ÿč”Œć§ćć‚‹ć®ćÆ恰恋恒恦恄悋怂

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454256799 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/AAAy_zuWKV0qzzWt6_jZNgDLFt1TA0tMks5vDU3vgaJpZM4J6vZQ
怂

ćƒ­ćƒ¼ćƒ€ćƒ¼ćŒćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ć‚’ä½æē”Øć™ć‚‹ćŸć‚ć€ćć‚Œć‚‰ćŒå­˜åœØć—ć¾ć™ć€‚ćć‚ŒćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć‚‹ē†ē”±ć§ć™ć€‚
ćć—ć¦ć€ć‚ćŖ恟ćÆļ¼ˆē§ć®ć‚ˆć†ć«ļ¼‰ćƒ­ćƒ¼ćƒ€ćƒ¼ćŖ恗恧恝悌悉悒ä½æē”Ø恙悋恓ćØ悒äø»å¼µć—恦恄悋恮恧态
ć®å•é”Œ
ę©Ÿčƒ½ć‚’åˆ©ē”Øć§ćć‚‹ć‚ˆć†ć«ćƒ„ćƒ¼ćƒ«ć‚’ä½æē”Øć—ć¦ć„ć¾ć™ć‹ļ¼Ÿ

ćƒ‡ćƒ³ćƒ†ć‚£ć‚¹1꜈15ꗄ怂 2019 kl 05:10 skrev Robert [email protected] ļ¼š

ć¾ćŸć€ę¬”ć®ć‚ˆć†ćŖę©Ÿčƒ½ć‚’ä½æē”Ø恗ćŖć„å “åˆćÆć€å®Ÿč”ŒåÆčƒ½ć‚³ćƒ¼ćƒ‰ćŒē”Ÿęˆć•ć‚Œć¾ć™ć€‚
JavaScriptć‚Øćƒ³ć‚øćƒ³ć§ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖ恄态

ē§ćÆTypeScriptćŒć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć™ć‚‹ć“ćØ恫ćŖć£ć¦ć„ć‚‹ć“ćØ悒åøø恫ē†č§£ć—ć¦ć„ć¾ć—ćŸ
JavaScript怂 ē‰¹å®šć®ę©Ÿčƒ½ćŒć«ć‚ˆć£ć¦ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖ恄恓ćØ悒ē§ć«čØ€ć£ć¦ć„ć‚‹å “åˆ
恧ćÆ态JavaScriptć‚Øćƒ³ć‚øćƒ³ćÆ态ćŖćœę­£ē¢ŗć«å­˜åœØ恙悋恮恧恗悇恆恋怂

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®å‹•ēš„ćƒŖćƒ³ć‚Æć®å “åˆć€C++ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ć›ć„ć«ć—ć¾ć™ć‹
ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖćØć€ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćŒćƒžć‚·ćƒ³äøŠć§å®Ÿč”Œć•ć‚ŒćŖ恄恓ćØćÆć€ć“ć‚Œć‚‰ć‚’ęŒć£ć¦ć„ć¾ć›ć‚“
ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¦ć„ć¾ć™ć‹ļ¼Ÿ

恄恄恈怂恟恠恗态ćƒŖćƒ³ć‚Æ恗ćŖć‹ć£ćŸä»–ć®C++ć‚³ćƒ¼ćƒ‰ć«ćƒŖćƒ³ć‚Æć§ćć‚‹å “åˆćÆč²¬ä»»ć‚’č² ć„ć¾ć™ć€‚
å®Ÿéš›ć«ćÆć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ć‚Øćƒ©ćƒ¼ć‚„č­¦å‘ŠćŖć—ć§å­˜åœØć—ć¾ć™ć€‚

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454260977 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/AAAy_25-ZmS235i1Ic7mvSzEt2QJDX6Bks5vDVTAgaJpZM4J6vZQ
怂

恻悉态恂ćŖćŸć®äø»å¼µćŒć‚ć‹ć‚Šć¾ć™ć€‚ ē§ćŒć‚„ć‚Šć¾ć™ć€‚ ć—ć‹ć—ć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ć®ä»•äŗ‹ć®äø€éƒØćÆć€ęœ€å¾Œć«ć‚‚ć†äø€åŗ¦å„å…Øꀧ惁悧惃ć‚Æć‚’č”Œć†ć“ćØ恧恙怂 ć›ć„ćœć„ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć—ć¦ć‚‚å®Ÿč”Œć•ć‚ŒćŖć„ć‚³ćƒ¼ćƒ‰ćÆäø€č²«ę€§ć®ćŖć„å‹•ä½œć§ć‚ć‚Šć€ć“ć®å•é”Œć‚’ęœ€åˆć«čŖ­ć‚“恠ćØćć€ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆę˜Žć‚‰ć‹ć«ćć“ć«ćŖć„å‹•ä½œć‚’ē¤ŗå”†ć—ć¦ć„ć‚‹ć‚ˆć†ć§ć—ćŸ

ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ćć®ć‚»ć‚Æć‚·ćƒ§ćƒ³ć‚’ę•™ćˆć¦ćć ć•ć„ć€‚

1꜈15ꗄ怂 2019kl怂 05:31 skrev Robert [email protected] ļ¼š

恻悉态恂ćŖćŸć®äø»å¼µćŒć‚ć‹ć‚Šć¾ć™ć€‚ ē§ćŒć‚„ć‚Šć¾ć™ć€‚ ć—ć‹ć—ć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ä»•äŗ‹ć®äø€éƒØćÆę­£ę°—ć‚’äæć¤ć“ćØ恧恙
ęœ€å¾Œć«ć‚‚ć†äø€åŗ¦ē¢ŗčŖć—ć¦ćć ć•ć„ć€‚ ć›ć„ćœć„ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć—ć¦ć‚‚å®Ÿč”Œć•ć‚ŒćŖć„ć‚³ćƒ¼ćƒ‰ćÆ
äø€č²«ę€§ć®ćŖć„å‹•ä½œćØē§ćŒć“ć®å•é”Œć‚’ęœ€åˆć«čŖ­ć‚“恠ćØ恍
ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆę˜Žć‚‰ć‹ć«ćć“ć«ćŖć„č”Œå‹•ć‚’ē¤ŗå”†ć—ć¦ć„ć‚‹ć‚ˆć†ć§ć—ćŸ

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454263854 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/AAAy_8e5v8IV-ynmjRTeoC3cp5llwnsIks5vDVm8gaJpZM4J6vZQ
怂

ć“ć®ę©Ÿčƒ½ćÆć€ćƒ­ćƒ¼ćƒ€ćƒ¼ć‚’ć‚µćƒćƒ¼ćƒˆć—ćŖć„ćŸć‚ć«čæ½åŠ ć•ć‚Œć¾ć—ćŸć€‚
逆恫态čŖ­ć‚“ć§ćć ć•ć„
å…¬å¼ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ć«ć¤ć„ć¦ćÆ态ē¹°ć‚Ščæ”恗恫ćŖć‚Šć¾ć™ćŒć€ć“ć‚Œć‚’ä½æē”Øć—ć¦ć„ć¾ć™
違恆ļ¼

https://austinknight.com/wp-content/uploads/2015/04/DesignVSUX.jpeg

@duffman恓恓恮äŗŗć€…ćŒć“ć®ę©Ÿčƒ½ć‚’ęœ›ć‚“ć§ć„ć‚‹ć®ćŒć‚ć‹ć‚Šć¾ć›ć‚“ć‹ļ¼Ÿ 恂ćŖ恟ćÆć€ć“ć®ć€Œę©Ÿčƒ½ć€ćŒć©ć®ć‚ˆć†ć«ä½æć‚ć‚Œć‚‹ć¹ćć‹ć‚’ē†č§£ć™ć‚‹ć®ćÆꄚ恋恠ćØćæ悓ćŖ恫čØ€ć£ć¦ć„ć¾ć™ć€‚ OK-恂ćŖ恟ćÆć“ć‚Œć‚’ćć®ć‚ˆć†ć«č¦‹ć‚‹ć“ćØćŒć§ćć¾ć™ćŒć€čŖ°ćŒēŸ„ć£ć¦ć„ć¾ć™ć‹-å¤šåˆ†ćć‚ŒćÆ逆恧恙...

恔ćŖćæ恫态ē§ć®ę„č¦‹ćÆꬔ恮ćØ恊悊恧恙怂

ć‚Ø悤ćƒŖć‚¢ć‚¹ćÆć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«ēµ„ćæč¾¼ć¾ć‚Œć¦ć„ć‚‹ćŸć‚ć€ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Ø恗恟惗惭ć‚ø悧ć‚Æćƒˆć®ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ćÆå•é”Œć‚ć‚Šć¾ć›ć‚“ć€‚ 恝悌ćÆćƒ¦ćƒ¼ć‚¶ćƒ¼ć«ćć‚ŒćŒē¤ŗå”†ć—ć¦ć„ć‚‹ć‚ˆć†ć«ę©Ÿčƒ½ć™ć‚‹ćØę€ć‚ć›ć‚‹ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ļ¼ˆćć—ć¦ć“ć®å•é”ŒćÆē§ćŒę­£ć—恄恓ćØ恮恋ćŖ悊č‰Æ恄čØ¼ę‹ ć§ć™ļ¼‰ć€‚ 恝悌ćÆéžč«–ē†ēš„ć§ć•ćˆć‚ć‚‹ć‚ˆć†ć§ć™-ćŖćœć€Œå…¬å¼ć€ć‚Øćƒ‡ć‚£ć‚æćƒ¼ć§ä½•ć‹ćŒę©Ÿčƒ½ć™ć‚‹ć®ć§ć™ć‹ļ¼ˆvscode-ē‰¹ć«ć€Œč‡Ŗå‹•ć‚¤ćƒ³ćƒćƒ¼ćƒˆć€ę©Ÿčƒ½ć‚’ä½æē”Øć™ć‚‹å “åˆć€vscodećÆć‚Ø悤ćƒŖć‚¢ć‚¹ćƒ‘ć‚¹ć‚’ä½æē”Øć—ć¾ć™ļ¼‰ć€ēµęžœć®ć‚³ćƒ¼ćƒ‰ćŒę©Ÿčƒ½ć—ćŖ恄恮恫ćŖ恜copilerć‚‚ę­£åøøć«ę©Ÿčƒ½ć™ć‚‹ć®ć§ć™ć‹ļ¼Ÿ 怌jsć‚Øćƒ³ć‚øćƒ³ćÆćć‚Œć‚’ć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć›ć‚“ć€ćØčØ€ć†ćØ态ē§ćÆ恕悉恫č³Ŗå•ć—ćŸććŖć‚Šć¾ć™-TSćÆJSć®ć€Œå•é”Œć€ć®ć„ćć¤ć‹ć‚’č»½ęø›ć™ć‚‹ćŸć‚ć®ć‚‚恮恧ćÆć‚ć‚Šć¾ć›ć‚“ć§ć—ćŸć‹ļ¼Ÿ

ē§ćÆć“ć‚Œć®2ć¤ć®č§£ę±ŗē­–恮恆恔恮1ć¤ć‚’ęœŸå¾…ć—ć¾ć™ļ¼š
1ļ¼‰ć‚Ø悤ćƒŖć‚¢ć‚¹ć§ć‚¤ćƒ³ćƒćƒ¼ćƒˆć‚’ę­£ć—ćć‚Ŗćƒ¼ćƒćƒ¼ćƒ©ć‚¤ćƒ‰ć™ć‚‹
2ļ¼‰č­¦å‘Šć‚’č”Øē¤ŗ恙悋

ć€Œę­£ć—ć„ęŒÆ悋舞恄怍ćØčØ€ć†ć®ćÆé–“é•ć£ć¦ć„ć‚‹ćØę€ć„ć¾ć™ć€‚ 恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ TSćÆć‚¢ć‚»ćƒ³ćƒ–ćƒŖč؀čŖžć§ćÆćŖ恏态C /C++ć§ć‚‚ć‚ć‚Šć¾ć›ć‚“ć€‚

開ē™ŗćƒćƒ¼ćƒ ćÆ态ć‚Ø悤ćƒŖć‚¢ć‚¹č§£ę±ŗć®ć‚µćƒćƒ¼ćƒˆć‚’čæ½åŠ ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ čæ½åŠ ć™ć‚‹ć“ćØć‚’ćŠå‹§ć‚ć—ć¾ć™
tsconfigć®ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©č§£ę±ŗē”Øć®ć‚­ćƒ¼ć€‚

恝悌ćÆ恄恄惞悤ć‚Æćƒ­ć‚½ćƒ•ćƒˆć ć‚ć†!!!!!!

ćŠé”˜ć„ć—ć¾ć™ć€‚ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Øć—ć¦ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ę”¹å–„ć™ć‚‹ć«ćÆ态恂ćŖćŸć®åŠ©ć‘ćŒåæ…要恧恙怂

:(恓恓恮ćæ悓ćŖćÆć®é…ć‚Œć®ćŸć‚ć«ę‚²ć—ćć¦ę€’ć£ć¦ć„ć¾ć™ļ¼ˆćć—恦ē©ŗč…¹ć§ć™ļ¼‰
äø€č²«ę€§ć€‚ TypescriptćÆē“ ę™“悉恗恄恧恙态ē§ćÆćć‚ŒćŒå¤§å„½ćć§ć™...

ē§é”ćÆćć‚ŒćŒå¤§å„½ćļ¼

ćƒ›ćƒ¼ćƒ ćƒ¬ć‚¹ć®é–‹ē™ŗ者悈悍恗恏...

El mar怂态15deene怂 de 2019 08:02态 MikeS.notifications @github.com
escribiĆ³ļ¼š

恔ćŖćæ恫态ē§ć®ę„č¦‹ćÆꬔ恮ćØ恊悊恧恙怂

ć‚Ø悤ćƒŖć‚¢ć‚¹ćÆć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«ēµ„ćæč¾¼ć¾ć‚Œć¦ćŠć‚Šć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ćÆå•é”Œć‚ć‚Šć¾ć›ć‚“ć€‚ 恝悌ćÆćƒ¦ćƒ¼ć‚¶ćƒ¼ć‚’ä½œć‚‹ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“
å½¼ć‚‰ćŒč€ƒćˆć‚‹ć‚ˆć†ć«ćć‚ŒćŒę©Ÿčƒ½ć™ć‚‹ćÆ恚恠ćØꀝ恆ļ¼ˆćć—ć¦ć“ć®å•é”ŒćÆ恋ćŖ悊恧恙
ćć‚ŒćŒęœ¬å½“ć§ć‚ć‚‹ć“ćØ恮č‰Æ恄čØ¼ę‹ ļ¼‰ć€‚ 恝悌ćÆéžč«–ē†ēš„ćŖ悈恆恧恙-ćŖćœä½•ć‹ćŒć†ć¾ćć„ćć®ć‹
ć€Œå…¬å¼ć€ć‚Øćƒ‡ć‚£ć‚æćƒ¼ļ¼ˆvscode-ē‰¹ć«ć€Œč‡Ŗå‹•ć‚¤ćƒ³ćƒćƒ¼ćƒˆć€ę©Ÿčƒ½ć‚’ä½æē”Øć™ć‚‹å “åˆć€
vscodećÆć‚Ø悤ćƒŖć‚¢ć‚¹ćƒ‘ć‚¹ć‚’ä½æē”Øć—ć¾ć™ļ¼‰ć€ć‚³ćƒ¼ćƒ‰ć‚’ē”Ÿęˆć™ć‚‹ćØćć«copilerć‚‚ę­£åøøć«ę©Ÿčƒ½ć™ć‚‹ē†ē”±
å‹•ć‹ćŖ恄ļ¼Ÿ 怌jsć‚Øćƒ³ć‚øćƒ³ćÆćć‚Œć‚’ć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć›ć‚“ć€ćØčØ€ć†ćØē§ćÆ聞恍恟恏ćŖć‚Šć¾ć™
恕悉恫-TSćÆ态JSć®ć€Œå•é”Œć€ć®äø€éƒØć‚’č»½ęø›ć™ć‚‹ćŸć‚ć®ć‚‚恮恧ćÆć‚ć‚Šć¾ć›ć‚“ć§ć—ćŸć‹ļ¼Ÿ

ē§ćÆć“ć‚Œć®2ć¤ć®č§£ę±ŗē­–恮恆恔恮1ć¤ć‚’ęœŸå¾…ć—ć¾ć™ļ¼š

  1. ć‚Ø悤ćƒŖć‚¢ć‚¹ć§ć‚¤ćƒ³ćƒćƒ¼ćƒˆć‚’ę­£ć—ćć‚Ŗćƒ¼ćƒćƒ¼ćƒ©ć‚¤ćƒ‰ć™ć‚‹
  2. č­¦å‘Šć‚’č”Øē¤ŗ恙悋

ć€Œę­£ć—ć„ęŒÆ悋舞恄怍ćØčØ€ć†ć®ćÆé–“é•ć£ć¦ć„ć‚‹ćØę€ć„ć¾ć™ć€‚ 恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ TSćÆ恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“
ć‚¢ć‚»ćƒ³ćƒ–ćƒŖč؀čŖžć§ć‚悊态C /C++ć§ć•ćˆć‚ć‚Šć¾ć›ć‚“ć€‚

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454384357 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/ACKT9OqexgOaHH1vDFuRcO7U_r2DEC23ks5vDdFbgaJpZM4J6vZQ
怂

怂 TSćÆć‚¢ć‚»ćƒ³ćƒ–ćƒŖč؀čŖžć§ćÆćŖ恏态C /C++ć§ć‚‚ć‚ć‚Šć¾ć›ć‚“ć€‚

TS恌C++恧ćÆćŖ恄恓ćØ悒čØ¼ę˜Žć™ć‚‹ć“ćØć«ć‚ˆć£ć¦ć€ć‚ćŖćŸćŒä½•ć‚’ęŒ‡ę‘˜ć—ć‚ˆć†ćØ恗恦恄悋恮恋态ē§ćÆęœ¬å½“ć«ē†č§£ć—ć¦ć„ć¾ć›ć‚“ć€‚ē§ćŸć”恮恻ćØ悓恩ćÆ态ē§ćŒę€ć†ć“ćØ悒悈恏ēŸ„ć£ć¦ć„ć¾ć™ć€‚

ć¾ćŸć€ć‚Ø悤ćƒŖć‚¢ć‚¹/ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ćŒäø–ē•Œäø­ć®ęœ¬ē•Ŗē’°å¢ƒć§ä½æē”Øć•ć‚Œć¦ć„ć‚‹ć“ćØ悂ē¢ŗčŖć—ć¾ć—ćŸć€‚å½“ē„¶ć€VS CodećÆćć‚Œć‚’ć‚µćƒćƒ¼ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ćŒć€MSćŒć‚»ćƒƒćƒˆć‚¢ćƒƒćƒ—ć«åˆć‚ć›ć¦ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ć‚’ä½œęˆć™ć‚‹ć“ćØćÆć¾ć č­°č«–ć®ä½™åœ°ćŒć‚ć‚Šć¾ć›ć‚“ć€‚

ē§ćŒē†č§£ć™ć‚‹ć®ć«č‹¦åŠ“恗恦恄悋恮ćÆ态ćŖ恜恂ćŖ恟恌恝悌悒ē¶­ęŒć™ć‚‹ć®ć‹ćØ恄恆恓ćØć§ć™ć€‚ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćÆćć‚ŒćŒę©Ÿčƒ½ć™ć‚‹ćÆćšć®ć‚ˆć†ć«ę©Ÿčƒ½ć—ć¾ć™ć€‚ć‚‚ć†äø€åŗ¦ć€ę©Ÿčƒ½ćŒä½•ć®ćŸć‚ć«ć‚ć‚‹ć®ć‹ć‚’ę˜Žē¢ŗ恫čæ°ć¹ć¦ć„ć‚‹ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’čŖ­ć‚“ć§ćć ć•ć„ļ¼

ć¤ć¾ć‚Šć€2分ē؋åŗ¦ć§ćƒ‘ć‚¹ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ä½æē”Øć—ć¦å‹•ä½œć™ć‚‹TS開ē™ŗē’°å¢ƒć‚’ć‚»ćƒƒćƒˆć‚¢ćƒƒćƒ—ć§ćć¾ć™ć€‚WebPack悒ä½æē”Ø恗恟恏ćŖć„å “åˆćÆ态TSPath悒ä½æē”Øć—ć¦ć™ć¹ć¦ć®jsćƒ•ć‚”ć‚¤ćƒ«ć®ć™ć¹ć¦ć®ćƒ‘ć‚¹ć‚’1ē§’ć§č§£ę±ŗć—ć€ćƒ‘ćƒƒć‚±ćƒ¼ć‚ø恫čæ½åŠ ć§ćć¾ć™ć€‚å®Ÿč”Œć‚¹ć‚ÆćƒŖ惗惈ćØ恗恦恮.jsonć§ć‚ć‚Šć€ćć‚Œć«ć¤ć„ć¦č€ƒćˆć‚‹åæ…要ćÆć‚ć‚Šć¾ć›ć‚“ć€‚å•é”ŒćÆ存åœØć›ćšć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćƒ¼ćÆęœ¬ę„ć®ę©Ÿčƒ½ć‚’ē¶­ęŒć—态å¹ø恛ćŖäø‡ę­³ć‚’ē¶šć‘悋恓ćØćŒć§ćć¾ć™ļ¼ļ¼Ÿ

ć¾ćŸćÆć€å®Ÿéš›ć®ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćŒć“ć‚Œć‚’č”Œć†ć“ćØ恌非åøøć«é‡č¦ć§ć‚ć‚‹å “åˆćÆć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć‚’ćƒ•ć‚©ćƒ¼ć‚Æ恗恦č‡Ŗåˆ†ć§å®Ÿč£…ć™ć‚‹ć“ćØć‚’ćŠå‹§ć‚ć—ć¾ć™ć€‚å¤§ćƒ’ćƒƒćƒˆć«ćŖć‚‹ć‹ć€ć‚»ćƒƒćƒˆć‚¢ćƒƒćƒ—ć•ć‚Œć¦ć‹ć‚‰äŗŗ怅恌ęŗ€č¶³ć—恦恄悋åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’ć‚µćƒćƒ¼ćƒˆć™ć‚‹ćŸć‚ć®ē’°å¢ƒć€‚

TypeScript恮äøŠä½5äŗŗć®č²¢ēŒ®č€…ć‚’å¬å–šć—ć¾ć™ļ¼š @ahejlsberg @ andy-ms @DanielRosenwasser @sandersn @sheetalkamat

TypeScriptćƒćƒ¼ćƒ ćÆć“ć®å•é”Œć‚’å†č€ƒć§ćć¾ć™ć‹ļ¼Ÿ ć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ćÆ态äø”ę–¹ć®č¦³ē‚¹ć§ć„ćć¤ć‹ć®ęœ‰ē”ØćŖč­°č«–ć‚’ęä¾›ć—ć¦ć„ć‚‹ćØę€ć„ć¾ć™ć€‚ęœ€čæ‘恮äŗŗ갗ćØēµŒéŽć—ćŸę™‚é–“ć®é•·ć•ć‚’č€ƒćˆć‚‹ćØ态悂恆äø€åŗ¦č¦‹ē›“恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ć“ć®å•é”Œć®ēŠ¶ę³ć«ć‚ˆć‚Šć€TS悒ć‚æć‚¤ćƒ—ćƒć‚§ćƒƒć‚«ćƒ¼ć®ē¾©å‹™ć®ćæć«é™ę ¼ć™ć‚‹ä»„å¤–ć«éøęŠžč‚¢ćÆć‚ć‚Šć¾ć›ć‚“ć§ć—ćŸć€‚
BabelćÆTSę§‹ę–‡ć‚’é©åˆ‡ć«ć‚µćƒćƒ¼ćƒˆć™ć‚‹ć‚ˆć†ć«ćŖ悊态 babel-plugin-module-resolverćØćØć‚‚ć«ć€ć“ć®ćƒ¦ćƒ¼ć‚¹ć‚±ćƒ¼ć‚¹ć§ę©Ÿčƒ½ć™ć‚‹ć‚³ćƒ¼ćƒ‰ć‚’é©åˆ‡ć«å‡ŗåŠ›ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚
å”Æäø€ć®ę¬ ē‚¹ćÆ态Babel恌TSę§‹ęˆć‚’ę°—ć«ć—ćŖć„ćŸć‚ć€ę§‹ęˆć®ćƒ“ćƒƒćƒˆć‚’tsconfig.jsonć‹ć‚‰č¤‡č£½ć™ć‚‹ć“ćØ恧恙怂 恗恋恗态恝悌ćÆćƒŽćƒ¼ćƒ‰ćƒ—ćƒ­ć‚ø悧ć‚Æ惈恧ēµ¶åÆ¾ćƒ‘ć‚¹ć‚’ę“ä½œć™ć‚‹ćŸć‚ć®čر容åÆčƒ½ćŖä¾”ę ¼ć§ć‚ć‚Šć€ćƒœćƒ¼ćƒŠć‚¹ćØ恗恦态ē§ćÆćƒćƒ™ćƒ«ćƒžć‚Æćƒ­ć®ć‚ˆć†ćŖē“ ę™“悉恗恄悂恮恧ć‚Øć‚³ć‚·ć‚¹ćƒ†ćƒ å…Øä½“ć‚’ę‰‹ć«å…„ć‚Œć¾ć™ć€‚

恓悌ćÆ态 tscć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć®ä»£ć‚ć‚Šć«ćƒ‰ćƒ­ćƒƒćƒ—ć‚¤ćƒ³ćØć—ć¦ę©Ÿčƒ½ć™ć‚‹ć‚ˆć†ć«ćŖć£ćŸęœ€å°ć®ć‚»ćƒƒćƒˆć‚¢ćƒƒćƒ—ć§ć™ć€‚

  • npm install --save-dev @babel/cli @babel/core @babel/preset-env @babel/preset-typescript babel-plugin-module-resolver @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread
  • package.json ļ¼š
    tsc -> tsc && babel ./src --out-dir ./dist --extensions ".ts,.js"
  • tsconfig.json ļ¼š
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@mynamespace/*": ["src/*"]
    },
    "outDir": "./dist",
    "noEmit": true, <--
    "allowJs": true,
    "target": "ES2017",
    "module": "CommonJS",
    "lib": [
      "ES2017"
    ]
  },
  "include": [
    "./src/**/*"
  ]
}

  • .babelrc ļ¼š
{
  "presets": [
    "@babel/preset-typescript",
    ["@babel/preset-env", {
      "targets": {
        "node": true
      }
    }]
  ],
  "plugins": [
    ["module-resolver", {
      "root": ["./src"],
      "alias": {
        "@mynamespace": "./src"
      },
      "extensions": [".js", ".ts"]
    }],
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread"   
  ]
}

ēµ¶åÆ¾ćƒ‘ć‚¹ć§typescript悒ä½æē”Øć—ćŸć„ć®ć§ć™ćŒć€webpack悄babelćŖć©ć‚’ę§‹ęˆć™ć‚‹åæ…č¦ćŒć‚ć‚‹ć‚ˆć†ć§ć™ć€‚ć“ć®å˜ē“”ćŖę©Ÿčƒ½ć‚’å®Ÿē¾ć™ć‚‹ć®ćÆé›£ć—ć„ć®ć§ć€ć‚‚ć£ćØē°”単ćŖćÆ恚恧恙šŸ˜ž

ē§ćÆć“ć®å•é”Œć‚’čŖć‚ć¾ć™ć€ē§ćÆ恓恮ē‰¹å®šć®ć“ćØć«ę°—ć„ć„ć¦ć„ćŸć‹ć©ć†ć‹ć‚ć‹ć‚Šć¾ć›ć‚“
ē§č‡Ŗčŗ«ć®å€‹äŗŗēš„ćŖčØ­å®šć«ć‚ˆć‚‹å•é”Œć€ć¾ćŸćÆ多分ē§ćÆ:)恝悌ćÆć‚¹ćƒ¼ćƒ‘ćƒ¼ć§ćÆć‚ć‚Šć¾ć›ć‚“
重恄äæ®ę­£ć€äæ®ę­£ćÆå˜ć«ļ¼ˆē›²ē›®ēš„恫ļ¼‰distPath悒äæ”é ¼ć™ć‚‹ć“ćØ恧恙态
恓悌ćÆå®Ÿéš›ć«ćÆē¾åœØć®ć‚½ćƒŖćƒ„ćƒ¼ć‚·ćƒ§ćƒ³ć‚ˆć‚Šć‚‚å˜ē“”ćŖć‚³ćƒ¼ćƒ‰ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚
ę˜Žę—„ć¾ć§ć«äæ®ę­£ć‚’利ē”Øć§ćć‚‹ć‚ˆć†ć«ć—ć¦ćć ć•ć„...

DenmĆ„n1꜈28ꗄ怂 2019 kl 15:59 skrev0099伟伟[email protected] ļ¼š

ēµ¶åÆ¾ćƒ‘ć‚¹ć§typescript悒ä½æē”Øć—ćŸć„ć®ć§ć™ćŒć€
config webpack悄babelć‹ä½•ć‹ć€é”ęˆć™ć‚‹ć®ćÆé›£ć—ć™ćŽć‚‹!!!

ā€”
恂ćŖ恟恌čØ€åŠć•ć‚ŒćŸć®ć§ć€ć‚ćŖ恟ćÆć“ć‚Œć‚’å—ć‘å–ć£ć¦ć„ć¾ć™ć€‚
ć“ć®ćƒ”ćƒ¼ćƒ«ć«ē›“ꎄčæ”äæ”恗态GitHub恧č”Øē¤ŗć—ć¦ćć ć•ć„
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-458164055 态
ć¾ćŸćÆć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ćƒŸćƒ„ćƒ¼ćƒˆć—ć¾ć™
https://github.com/notifications/unsubscribe-auth/AAAy_1_T-An7swSND-xdBhL0HNHxQkm6ks5vHxBggaJpZM4J6vZQ
怂

paths恮ē¾åœØć®å‹•ä½œć«é–¢ć™ć‚‹å®Ÿéš›ć®ę–‡ę›øåŒ–ć•ć‚ŒćŸćƒ¦ćƒ¼ć‚¹ć‚±ćƒ¼ć‚¹ćŒć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć§čØ€åŠć•ć‚Œć¦ć„ćŖć„ćŸć‚ć€ć“ć‚Œć‚’ć“ć“ć«ę®‹ć—ć¾ć™ć€‚ @types/ćƒ‘ćƒƒć‚±ćƒ¼ć‚øćÆ态semverć«é–¢ć—ć¦ę©Ÿčƒ½ć‚’ćƒćƒƒć‚Æćƒćƒ¼ćƒˆć—ć¾ć›ć‚“ć€‚ 恟恠恗态ä½æē”Øć§ćć‚‹å¤ć„APIć®ę›“ę–°ć•ć‚ŒćŸć‚æć‚¤ćƒ—ćŒå«ć¾ć‚Œć¦ć„ć¾ć™ć€‚ 恟ćØ恈恰态 history@3ćŒęœ€ę–°ć®å “åˆć€$ history@2悒ä½æē”Øć—ć¦ć„ć¾ć™ć€‚

"paths": {
    "history": [ "history/v2" ]
}

ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«ćÆ态ć‚æ悤惗ć‚Ø悤ćƒŖć‚¢ć‚¹ćØć€Œć‚³ćƒ¼ćƒ‰ć€ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’åŒŗåˆ„ć™ć‚‹ćŸć‚ć®čæ½åŠ ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒåæ…要恫ćŖć‚Šć¾ć™ć€‚ ćƒ‘ć‚¹ć‚Ø悤ćƒŖć‚¢ć‚¹ć‚’å®Ÿéš›ć«ē™ŗč”Œć™ć‚‹ć‚ˆć†ć«å‹•ä½œć‚’å¤‰ę›“ć™ć‚‹å “åˆćÆć€ę­£ć—ć„åž‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ć‚’č¦‹ć¤ć‘ć‚‹ę©Ÿčƒ½ć‚’ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć«čæ½åŠ ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

恓悌ćÆć€ęę”ˆć•ć‚ŒćŸå‹•ä½œć«ååÆ¾ć™ć‚‹č­°č«–ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ ć‚€ć—ć‚ć€åž‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć®ćŸć‚ć®ć‚Ø悤ćƒŖć‚¢ć‚¹ćØjustā„¢ä½œę„­ć‚½ćƒŖćƒ„ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ē™ŗč”Œć—ćŸć„ćØę€ć„ć¾ć™ć€‚ ć“ć‚Œć‚’å¤‰ę›“ć™ć‚‹ć“ćØ恌态äŗŗć€…ćŒę€ć£ć¦ć„ć‚‹ć»ć©ē°”å˜ć§ćÆćŖ恄恋悂恗悌ćŖ恄ē†ē”±ć‚’čŖ¬ę˜Žć—ćŸć‹ć£ćŸć ć‘ć§ć™ć€‚

å…Øē¤¾ēš„ćŖTSćƒÆćƒ¼ć‚Æć‚·ćƒ§ćƒƒćƒ—ć§2回ē›®ć€ē§ćÆć“ć®éžåøøč­˜ć§ę„ćšć‹ć—ć„č”Œå‹•ć‚’čŖ¬ę˜Žć—ćŖ恑悌恰ćŖć‚Šć¾ć›ć‚“ć§ć—ćŸ...

ēœŸå‰£ć«ļ¼

ć©ć®ć‚ˆć†ćŖč؀čŖžć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ć€ē‰¹ć«JavaScriptć®ę­£ē¢ŗꀧ悒äø»ćŖå£²ć‚Šč¾¼ćæćØć™ć‚‹ć‚³ćƒ³ćƒ‘ć‚¤ćƒ©ćÆć€å£Šć‚ŒćŸć‚³ćƒ¼ćƒ‰ć‚’ć€Œę©Ÿčƒ½ć€ćØ恗恦ē”Ÿęˆć—ć¾ć™ć‹ļ¼Ÿļ¼ļ¼Ÿļ¼

ć‚³ćƒ”ćƒ³ćƒˆć«äøęŗ€ć‚’ę„Ÿć˜ć¦ē”³ć—čØ³ć‚ć‚Šć¾ć›ć‚“ćŒć€ć“ć“ć§ć®ć‚³ćƒŸćƒ„ćƒ‹ćƒ†ć‚£ć®č¦‹č§£ćÆē„”č¦–ć•ć‚Œć€ē¹°ć‚Ščæ”ć—č»½č¦–ć•ć‚Œć¦ć„ć‚‹ć‚ˆć†ć§ć™ć€‚

ć“ć‚ŒćŒä½•å›žå‚ē…§ć•ć‚Œć¦ć„ć‚‹ć‹ć‚’č¦‹ć¦ćć ć•ć„...非åøøć«å¤šćć®äŗŗ怅恫ćØć£ć¦ć€ę™‚é–“ćØę³Øę„ć®ē„”駄恧恙怂

ē§ćÆ恂ćŖćŸć®ę¬²ę±‚äøęŗ€ć‚’ē†č§£ć—ć¦ć„ć¾ć™ćŒć€č”Œå‹•ćŒę­£ć—ć„ćØę„Ÿć˜ć¦ć„ć‚‹å¤šćć®äŗŗ怅ćÆć€ćć‚ŒćŒę­£ć—ć„ć“ćØć‚’ę„å‘³ć™ć‚‹ć‚ć‘ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

TypeScriptę›øćę›ćˆćƒ¢ć‚øćƒ„ćƒ¼ćƒ«č­˜åˆ„å­ćÆć€ę»‘ć‚Šć‚„ć™ć„ę»‘ć‚Šć‚„ć™ć„å‚é“ć§ć™ć€‚ ć“ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć§ä½•åŗ¦ć‚‚č”Øē¾ć•ć‚Œć¦ć„悋恮ćÆ态TypeScriptćÆć€ä»–ć®ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒŖć‚¾ćƒ«ćƒćƒ¼ć‚„ä»–ć®ćƒ“ćƒ«ćƒ‰ćƒ„ćƒ¼ćƒ«ć®å‹•ä½œć‚’ćƒ¢ćƒ‡ćƒ«åŒ–ć™ć‚‹ć‚ˆć†ć«ę§‹ęˆåÆčƒ½ć§ć‚ć‚Šć€ćć‚Œć‚‰ć‚’ē½®ćę›ćˆćŸć‚Šå®Ÿč£…ć—ćŸć‚Šć—ćŖ恄恓ćØ恧恙怂

TypeScriptćŒęŸ”č»ŸćŖę–¹ę³•ć§ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚’č§£ę±ŗć™ć‚‹ć‚ˆć†ć«ę§‹ęˆć§ćć‚‹ć‹ć‚‰ćØć„ć£ć¦ć€TypeScriptćŒć€Œå£Šć‚ŒćŸć‚³ćƒ¼ćƒ‰ć€ć‚’ē™ŗč”Œć™ć‚‹ć“ćØć‚’ę„å‘³ć™ć‚‹ć‚ć‘ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ ć“ć®ę§‹ęˆć‚’ćƒŸćƒ©ćƒ¼ćƒŖćƒ³ć‚°ć™ć‚‹ē‰¹å®šć®ćƒ­ćƒ¼ćƒ€ćƒ¼ćØćƒćƒ³ćƒ‰ćƒ©ćƒ¼ćÆ問锌ćŖćę©Ÿčƒ½ć—ć¾ć™ć€‚

ē§ćŸć”ćŒä½•ć‹ć«ę‰¹åˆ¤ēš„ć§ć‚ć‚‹å “åˆć€ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆćć‚ŒćŒę”¾å‡ŗć‚’å¤‰ę›“ć—ćŖ恄恓ćØć‚’ę˜Žć‚‰ć‹ć«ć—ć¦ć„ć¾ć™ćŒć€ćć‚ŒćŒäæ®ę­£ć™ć‚‹ć“ćØć‚’ę„å›³ć—ć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ć™ć‚‹ć‚ˆć†ć«č¦‹ćˆć‚‹ć‹ć‚‚ć—ć‚ŒćŖć„ä½•ć‹ć‚’ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć«å‘½åć—ćŸć“ćØć§ćƒćƒ¼ćƒ ć‚’éžé›£ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚

ē‰¹å®šć®ćƒ„ćƒ¼ćƒ«ćŒå•é”Œć‚’č§£ę±ŗ恗ćŖć„ć®ć§ć€ćć‚ŒćŒćƒ„ćƒ¼ćƒ«ć®ę•…éšœć§ć‚ć‚‹ćØćÆ限悉ćŖ恄怂 å•é”Œć‚’č§£ę±ŗć™ć‚‹ćŸć‚ć«åæ…要ćŖć™ć¹ć¦ć®ćƒ„ćƒ¼ćƒ«ć‚’ęŒć£ć¦ć„ćŖć„ć ć‘ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ć€‚

@kitsonk恂ćŖćŸćŒä»ŠčØ€ć£ćŸć“ćØćÆć™ć¹ć¦ćƒžćƒ¼ć‚Æć‹ć‚‰å¤–ć‚Œć¦ć„ć¾ć™ć€‚

問锌ćÆ态TS恌開ē™ŗ/ćƒ†ć‚¹ćƒˆäø­ć«äø€ę–¹å‘ć«å‹•ä½œć—ć€ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ćŒå®Œäŗ†ć—ćŸå¾Œć«åˆ„ć®ę–¹å‘ć«å‹•ä½œć™ć‚‹ć“ćØ恧恙怂

TSćŒćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒŖć‚¾ćƒ«ćƒćƒ¼ć«ćŖć‚ŠćŸć„å “åˆćÆ态惑ć‚æćƒ¼ćƒ³ć‚’éøęŠžć—ć¦ćć‚Œć«å›ŗåŸ·ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ ts-nodeć§ä½•ć‹ć‚’å®Ÿč”Œć™ć‚‹ćØ态TSć‚’ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ć—ć¦nodeć§å®Ÿč”Œć—ćŸå “åˆćØć¾ć£ćŸćåŒć˜ć‚ˆć†ć«å‹•ä½œć™ć‚‹ćÆ恚恧恙怂

恝恆恧ćÆćŖćć€ćć‚ŒćŒå•é”Œć§ć™ć€‚

ćŸć¶ć‚“ć€ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒžćƒƒćƒ—ćÆå°†ę„ć®ę¬²ę±‚äøęŗ€ć‚’č»½ęø›ć™ć‚‹ć§ć—悇恆怂 恗恋恗态恓恓恧恮ē§ćŸć”恮ē«‹å “ćØč§£ę±ŗć—ćŸć„ęŠ€č”“ēš„ćŖ問锌ćÆ恋ćŖ悊꘎ē¢ŗ恧恙-ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ćÆ外éƒØč§£ę±ŗć‚¹ć‚­ćƒ¼ćƒ ć®å‹•ä½œć‚’åę˜ ć—ć¦ć„ć¾ć™ļ¼ˆćŸćØ恈恰态AMDćØSystem.jsć®ćƒ‘ć‚¹ćƒžćƒƒćƒ”ćƒ³ć‚°ć€Webpackć‚„ä»–ć®ćƒćƒ³ćƒ‰ćƒ©ćƒ¼ć®ć‚Ø悤ćƒŖć‚¢ć‚¹ļ¼‰ć€‚ 恝悌ćÆē§ćŸć”恌恂ćŖćŸć®é“ć‚’å¤‰ćˆć‚‹ć“ćØć‚’ę„å‘³ć™ć‚‹ć‚‚ć®ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

꜀čæ‘恮議論ćÆå»ŗčØ­ēš„ćŖ悂恮恧ćÆćŖ恄ćØę€ć„ć¾ć™ć—ć€ć“ć“ć§å°†ę„ć®å¤‰ę›“ć‚‚äŗˆęø¬ć—恦恄ćŖć„ć®ć§ć€ć“ć®å•é”Œć‚’ćƒ­ćƒƒć‚Æć—ć¾ć™ć€‚

ć“ć®ćƒšćƒ¼ć‚øćÆå½¹ć«ē«‹ć”ć¾ć—ćŸć‹ļ¼Ÿ
0 / 5 - 0 č©•ä¾”