hops-typescript

15.2.1 • Public • Published

hops-typescript

npm

Please see the main Hops Readme for general information and a Getting Started Guide.

This is a preset for Hops that can be used to enable TypeScript support for Hops projects.

Installation

Add this preset to your existing Hops React project:

npm install --save hops-typescript typescript

If you don't already have an existing Hops project read this section on how to set up your first Hops project.

Usage

Once this preset is installed and you have a tsconfig.json in your application root you can start writing your app using TypeScript.

Check out this integration test as an example for how to use this preset.

Configuration

The only required configuration is a tsconfig.json in your project root.

This preset contains a minimal tsconfig.json file which we recommend you extend in your tsconfig.json:

Example:

{
  "extends": "hops-typescript/tsconfig.json"
}

Whether you extend the given TS config or completely provide your own — please take care to not overwrite the properties compilerOptions.moduleResolution and compilerOptions.target, because those are vital for Hops to work properly!

Using static assets

While it's a pre-configured feature in Hops to be able to import and make use of .css-, .jpg-, .png-, .gif, .webp-, .html- and .json-files, this unfortunately is not supported out-of-the-box in hops-typescript. If you try to do this in Typescript the compiler will complain, stating: Cannot find module '<path to asset file>'.ts (2307).

Fortunately there's a way to enable this feature! First of all create a folder ./typings in the root of your project and put a file named assets.d.ts with the following contents into it:

declare module '*.jpg';
declare module '*.png';
declare module '*.gif';
declare module '*.webp';
declare module '*.css';
declare module '*.html';
declare module '*.json';

Register those typings by defining the "typeRoots"-property in your tsconfig.file like this:

{
  "typeRoots": ["./node_modules/@types", "./typings"]
}

Now the Typescript compiler will look at ./node_modules/@types and ./typings for type declarations. It will — among others — find your declaration file for static asset "modules" and won't complain any longer when you import one of them. Note that by doing it this way every asset import is of type any.

Btw: by default the compiler only looks at ./node_modules/@types for type declarations. Since there's now another location, you can use this to put declarations into the ./typings-folder for modules that neither bring their own type declarations, nor have typings over at DefinitelyTyped (the source off all the @types/* modules).

If you want to know more about writing declaration files, check out the documentation.

Preset Options

This preset has no preset configuration options.

Render Options

This preset has no runtime configuration options.

Readme

Keywords

Package Sidebar

Install

npm i hops-typescript

Weekly Downloads

181

Version

15.2.1

License

MIT

Unpacked Size

15.9 kB

Total Files

9

Last publish

Collaborators

  • robertkowalski
  • zaubernerd
  • jhiode
  • knisterpeter
  • hops-release
  • dmbch
  • aithir
  • robin-drexler