将 TypeScript 与 Sails 结合使用

问题描述 投票:0回答:3

有人在 Sails 中使用 TypeScript 吗?如果是这样,您使用什么进行外部声明?

我正在参与 Sails 应用程序项目并了解了 TypeScript。我正在尝试确定 TypeScript 是否是我应该在这个项目中追求的东西。任何信息将不胜感激。谢谢。

typescript sails.js
3个回答
9
投票

来自:https://github.com/balderdashy/sails Sails 是用

node
connect
express
socket.io
构建的。这意味着您需要这些库的定义文件。所有这些都可以从 Definitive TypeScript 定义存储库中获得:https://github.com/borisyankov/DefinitelyTyped


1
投票

typings.json

{
  "dependencies": {
    "bluebird": "registry:npm/bluebird#3.5.0+20170314181206",
    "connect": "registry:dt/connect#3.4.0+20160510010627",
    "express": "registry:dt/express#4.0.0+20170118060322",
    "express-serve-static-core": "registry:dt/express-serve-static-core#4.0.0+20170324160323",
    "sails": "registry:npm/sails#0.12.0+20160610190623",
    "serve-static": "registry:dt/serve-static#1.7.1+20161128184045"
  },
  "globalDependencies": {
    "es6-shim": "registry:dt/es6-shim#0.31.2+20160726072212",
    "node": "registry:dt/node#7.0.0+20170322231424",
    "socket.io": "registry:dt/socket.io#1.4.4+20170313110830"
  }
}

欢迎控制器

   /**
     * WelcomeController.ts
     *
     * @description :: Server-side logic for managing Welcomes in TS
     * @help        :: See http://links.sailsjs.org/docs/controllers
     */

    import e = require('express');
    import util = require('util');

    declare const sails: any;

    const WelcomeController = {
      index: function (req: e.Request, res: e.Response, next: Function) {
        console.log('index() from WelcomeController.ts');
        sails.models.welcome.find().limit(1).then((welcome) => {
          /// TODO: add logger
          console.log(`welcome page rendering w/ message ${welcome[0].message}`);
          return res.render('welcome', {
            welcome: welcome[0].message
          });
        }).catch((err:Error) => {
          console.error(err.message);
          return res.render('500', err)
        });


      },
      config: function (req: e.Request, res:e.Response, next:Function) {
        console.log('config() from WelcomeController.ts');
        return res.status(200)
          .send('<h1>sails.config :</h1><pre>' + util.inspect(sails.config) + '<pre>');
      }
    };

    module.exports = WelcomeController;

型号

export class Welcome {
   attributes: any = {
    id: {
      type: 'integer',
      primaryKey: true
    },
    message: {
      type: 'string',
      required: true,
      defaultsTo: 'default message'
    }
  };
}

查看

<div class="default-page">
  <div class="header">
    <h1 id="main-title" class="container"></h1>
    <h3 class="container">Message: <code><%= welcome %></code></h3>
  </div>
  <div class="main container clearfix">

等等...我在 git 上启动了一个示例项目但从未完成:

https://github.com/aslanvaroqua/sails-ts


0
投票

您可以通过参考“examples”文件夹中的示例项目来使用我们的模块。这是链接:https://github.com/sails-adminpanel/sails-typescript

© www.soinside.com 2019 - 2024. All rights reserved.