Arhn - архитектура программирования

Определенно типизированный файл определения NodeJS + Express содержит ошибки

Я пытаюсь преобразовать свой проект с NodeJS + ExpressJS в Typescript.

Я получил файлы определений от Definitely Typed, но в них, похоже, много ошибок:

export interface ClientRequest extends events.NodeEventEmitter, stream.WritableStream    
{
    // Extended base methods
    write(str: string, encoding?: string, fd?: string): boolean;
    write(buffer: NodeBuffer): boolean;

    write(chunk: any, encoding?: string): void;
    end(data?: any, encoding?: string): void;
    abort(): void;
    setTimeout(timeout: number, callback?: Function): void;
    setNoDelay(noDelay?: Function): void;
    setSocketKeepAlive(enable?: boolean, initialDelay?: number): void;
}

export interface Server extends net.Server {
    // Extended base methods
    listen(port: number, host?: string, backlog?: number, listeningListener?: Function): void;
    listen(path: string, listeningListener?: Function): void;
    listen(handle: any, listeningListener?: Function): void;

    listen(port: number, host?: string, callback?: Function): void;
    close(): void;
    address(): { port: number; family: string; address: string; };
    addContext(hostName: string, credentials: {
        key: string;
        cert: string;
        ca: string;
    }): void;
    maxConnections: number;
    connections: number;
}

Методы «запись» и «прослушивание» выдают ошибку: «Несовместимое переопределение для члена доступного для записи потока».

В файле app.js функция var app = express(); выдает ошибку: Выражение метода не является типом функции:

var http = require("http");
var express = require("express");
var expose = require("express-expose");
var fs = require("fs");
var formidable = require("formidable");
var upload = require('Upload');

var app = express();
var HOST = "localhost";
var PORT = 8080;

  • Вероятно, определения устарели. Исправьте ошибку и сделайте запрос на включение в проект с определенным типом. Вот как работает открытый исходный код ;-) 11.12.2013

Ответы:


1

«несовместимое переопределение» — это ошибка в webStorm, проголосуйте за WEB-10239

«Выражение метода не является типом функции:» не может воспроизводиться в WebStorm 7.0.2

11.12.2013
  • Что вы подразумеваете под невозможностью воспроизведения в Webstorm 7.0.2. Это версия webstorm, которая у меня сейчас есть. А что касается ошибки, можем ли мы просто игнорировать предупреждения и продолжить? И ожидать, что он будет нормально работать? 12.12.2013
  • Еще кое-что! ваши ответы были очень полезны. Я также задал вопрос на Quora о том, как вообще создавать файлы определений Typescript. Не могли бы вы попытаться ответить на это? Вот ссылка: quora.com/TypeScript/ 12.12.2013
  • Нет никаких инструментов (по крайней мере, я не знаю ни одного) для создания файлов машинописного текста из javascript... Компилятор машинописного текста может генерировать файлы объявлений окружения (d.ts) из файлов .ts (см. параметр --declaration), не может сделать это для javascript. Конечно, в качестве грязного хака вы можете попробовать переименовать ваши файлы .js в .ts, а затем запустить для них компилятор машинописного текста с параметром -declaration, но это, скорее всего, не удастся, так как компилятор не понимает большинство конструкций js и извлекать из них декларации 12.12.2013
  • См. также codebelt.com /typescript/ — руководство по созданию файлов d.ts из библиотек javascript. Также обратите внимание, что вы можете найти файлы d.ts для большинства популярных библиотек по адресу github.com/borisyankov/DefinitelyTyped. 12.12.2013
  • Спасибо. Это полезно. Я получил несколько файлов от Definitely Typed — особенно для NodeJS и Expres, что привело к некоторым ошибкам. Я задал вопрос по этому поводу, на который, возможно, вы могли бы ответить: stackoverflow.com/questions/20542254/ - Еще раз спасибо. 12.12.2013
  • И не могли бы вы объяснить, что вы подразумеваете под не может воспроизводиться в Webstorm 7.0.2 12.12.2013
  • именно то, что написано - я не вижу сообщений об ошибках для 'var app = express(); ' в коде, похожем на ваш. Могут быть некоторые другие части вашего кода/библиотек, которые влияют на это поведение. 12.12.2013
  • Благодарю вас! Не могли бы вы помочь мне с этим вопросом? stackoverflow.com/questions/20542254/ 12.12.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..