Свойство Typescript TS2339 не существует - PullRequest
1 голос
/ 24 сентября 2019

это голова для меня.Не могу понять это ... вероятно, нужно немного по-новому взглянуть на вопрос

У меня есть следующий код

import express from 'express';
import { isFunction } from 'lodash';

export class Server {
  private _server = express();
  private _namespace = '/api/v1';
  public constructor(private _port: number) {}

  public addRoute({ path, handler, method }): this {
    var requestHandler = this._server[String(method).toLowerCase()];
    if (false === isFunction(requestHandler)) throw new Error('Invalid HTTP method');
    requestHandler(path, handler);
    return this;
  }
}

И я продолжаю получать те же ошибки, которыемне вообще нет смысла ...

TSError: ⨯ Unable to compile TypeScript:
src/server/main.ts:21:14 - error TS2339: Property '_port' does not exist on type 'Server'.

21         this._port = _port;
                ~~~~~
src/server/main.ts:22:14 - error TS2339: Property '_server' does not exist on type 'Server'.

22         this._server = express_1.default();
                ~~~~~~~
src/server/main.ts:23:14 - error TS2339: Property '_namespace' does not exist on type 'Server'.

23         this._namespace = '/api/v1';
                ~~~~~~~~~~
src/server/main.ts:34:35 - error TS2339: Property '_server' does not exist on type 'Server'.

34         var requestHandler = this._server[String(method).toLowerCase()];
                                     ~~~~~~~

Это просто помешательство для меня ...

Я использую машинопись 3.6.3, работаю на узел 12.8.1 и использование ts-node 8.4.1 для добавления поддержки TS

Я вставил код на весь код в TSдетская площадка .Внесены некоторые изменения, чтобы удалить функции импорта и неопределенные функции, но в целом вышеупомянутые ошибки не появляются, поэтому я растерялся ... если кто-нибудь будет любезно указать мне в направлении решения этой проблемы, это было бы фантастическим :)

Также вот мой tsconfig.json

{
  "compilerOptions": {
    "noImplicitThis": false,
    "rootDir": "src",
    "typeRoots": ["node_modules/@types", "@types"],
    "lib": ["es6"],
    "strict": true,
    "strictPropertyInitialization": false,
    "strictFunctionTypes": true,
    "esModuleInterop": true,
    "target": "es6",
    "noImplicitAny": false,
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": false,
    "pretty": true,
    "outDir": "build",
    "alwaysStrict": false,
    "noImplicitReturns": true,
    "noStrictGenericChecks": true,
    "noUnusedLocals": true,
    "noUnusedParameters": false,
    "suppressImplicitAnyIndexErrors": true,
    "preserveConstEnums": false,
    "strictNullChecks": true,
    "allowSyntheticDefaultImports": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  },
  "include": ["./**/*.ts"],
  "compileOnSave": true,
  "exclude": ["node_modules"]
}

...